diff --git a/.gitattributes b/.gitattributes index 1ff0c42..8ad74f7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,63 +1,2 @@ -############################################################################### -# Set default behavior to automatically normalize line endings. -############################################################################### -* text=auto - -############################################################################### -# Set default behavior for command prompt diff. -# -# This is need for earlier builds of msysgit that does not have it on by -# default for csharp files. -# Note: This is only used by command line -############################################################################### -#*.cs diff=csharp - -############################################################################### -# Set the merge driver for project and solution files -# -# Merging from the command prompt will add diff markers to the files if there -# are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following -# file extensions to fail to load in VS. An alternative would be to treat -# these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just uncomment the entries below -############################################################################### -#*.sln merge=binary -#*.csproj merge=binary -#*.vbproj merge=binary -#*.vcxproj merge=binary -#*.vcproj merge=binary -#*.dbproj merge=binary -#*.fsproj merge=binary -#*.lsproj merge=binary -#*.wixproj merge=binary -#*.modelproj merge=binary -#*.sqlproj merge=binary -#*.wwaproj merge=binary - -############################################################################### -# behavior for image files -# -# image files are treated as binary by default. -############################################################################### -#*.jpg binary -#*.png binary -#*.gif binary - -############################################################################### -# diff behavior for common document formats -# -# Convert binary document formats to text before diffing them. This feature -# is only available from the command line. Turn it on by uncommenting the -# entries below. -############################################################################### -#*.doc diff=astextplain -#*.DOC diff=astextplain -#*.docx diff=astextplain -#*.DOCX diff=astextplain -#*.dot diff=astextplain -#*.DOT diff=astextplain -#*.pdf diff=astextplain -#*.PDF diff=astextplain -#*.rtf diff=astextplain -#*.RTF diff=astextplain +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.github/workflows/godot.yml b/.github/workflows/godot.yml index b3c4412..6e190cd 100644 --- a/.github/workflows/godot.yml +++ b/.github/workflows/godot.yml @@ -1,32 +1,27 @@ -name: Build Godot Project +# name: Build Godot Project -on: - push: - branches: [main, develop, "releases/**"] - pull_request: - branches: [main, develop, "releases/**"] +# on: +# push: +# branches: [main, develop, "releases/**"] +# pull_request: +# branches: [main, develop, "releases/**"] -jobs: - Godot: - timeout-minutes: 15 - continue-on-error: true - runs-on: ubuntu-latest - strategy: - matrix: - platform: [linux, windows] - steps: - - uses: actions/checkout@v2 - with: - lfs: true - - name: Build - id: build - uses: manleydev/build-godot-action@v1.4.1 - with: - name: My Simulation - preset: ${{ matrix.platform }} - debugMode: "true" - # - name: Upload Artifact - # uses: actions/upload-artifact@v2 - # with: - # name: Client - ${{ matrix.platform }} - # path: ${{ github.workspace }}/${{ steps.build.outputs.build }} +# jobs: +# Godot: +# timeout-minutes: 15 +# continue-on-error: true +# runs-on: ubuntu-latest +# strategy: +# matrix: +# platform: [linux, windows] +# steps: +# - uses: actions/checkout@v2 +# with: +# lfs: true +# - name: Build +# id: build +# uses: manleydev/build-godot-action@v1.4.1 +# with: +# name: My Simulation +# preset: ${{ matrix.platform }} +# debugMode: "true" diff --git a/.gitignore b/.gitignore index 26147bf..c6b96f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ # File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig -# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,linux,godot,executable,backup -# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,macos,linux,godot,executable,backup +# Created by https://www.toptal.com/developers/gitignore/api/windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup +# Edit at https://www.toptal.com/developers/gitignore?templates=windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup ### Backup ### *.bak @@ -9,6 +9,15 @@ *.orig *.tmp +### DotnetCore ### +# .NET Core build folders +bin/ +obj/ + +# Common node modules locations +/node_modules +/wwwroot/node_modules + ### Executable ### *.app *.bat @@ -22,6 +31,9 @@ *.wsf ### Godot ### +# Godot 4+ specific ignores +.godot/ + # Godot-specific ignores .import/ export.cfg @@ -33,6 +45,7 @@ export_presets.cfg # Mono-specific ignores .mono/ data_*/ +mono_crash.*.json ### Linux ### *~ @@ -82,6 +95,16 @@ Temporary Items # iCloud generated files *.icloud +### MonoDevelop ### +#User Specific +*.userprefs +*.usertasks + +#Mono Project Files +*.pidb +*.resources +test-results/ + ### VisualStudioCode ### .vscode/* !.vscode/settings.json @@ -101,6 +124,21 @@ Temporary Items .history .ionide +### Web ### +*.asp +*.cer +*.csr +*.css +*.htm +*.html +*.js +*.jsp +*.php +*.rss +*.wasm +*.wat +*.xhtml + ### Windows ### # Windows thumbnail cache files Thumbs.db @@ -127,8 +165,7 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk -# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,linux,godot,executable,backup +# End of https://www.toptal.com/developers/gitignore/api/windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) -!export_presets.cfg \ No newline at end of file diff --git a/LICENSE b/LICENSE index 809d64a..620733c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,320 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Version 2, June 1991 - 1. Definitions. +Copyright (C) 1989, 1991 Free Software Foundation, Inc. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +Preamble - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software +is covered by the GNU Lesser General Public License instead.) You can apply +it to your programs, too. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for this service if you +wish), that you receive source code or can get it if you want it, that you +can change the software or use pieces of it in new free programs; and that +you know you can do these things. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. +To protect your rights, we need to make restrictions that forbid anyone to +deny you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of +the software, or if you modify it. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +For example, if you distribute copies of such a program, whether gratis or +for a fee, you must give the recipients all the rights that you have. You +must make sure that they, too, receive or can get the source code. And you +must show them these terms so they know their rights. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If +the software is modified by someone else and passed on, we want its recipients +to know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will individually +obtain patent licenses, in effect making the program proprietary. To prevent +this, we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. +The precise terms and conditions for copying, distribution and modification +follow. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +0. This License applies to any program or other work which contains a notice + placed by the copyright holder saying it may be distributed under the terms + of this General Public License. The "Program", below, refers to any such program + or work, and a "work based on the Program" means either the Program or any + derivative work under copyright law: that is to say, a work containing the + Program or a portion of it, either verbatim or with modifications and/or translated + into another language. (Hereinafter, translation is included without limitation + in the term "modification".) Each licensee is addressed as "you". - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +Activities other than copying, distribution and modification are not covered +by this License; they are outside its scope. The act of running the Program +is not restricted, and the output from the Program is covered only if its +contents constitute a work based on the Program (independent of having been +made by running the Program). Whether that is true depends on what the Program +does. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +1. You may copy and distribute verbatim copies of the Program's source code + as you receive it, in any medium, provided that you conspicuously and appropriately + publish on each copy an appropriate copyright notice and disclaimer of warranty; + keep intact all the notices that refer to this License and to the absence + of any warranty; and give any other recipients of the Program a copy of this + License along with the Program. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +You may charge a fee for the physical act of transferring a copy, and you +may at your option offer warranty protection in exchange for a fee. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +2. You may modify your copy or copies of the Program or any portion of it, + thus forming a work based on the Program, and copy and distribute such modifications + or work under the terms of Section 1 above, provided that you also meet all + of these conditions: - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +a) You must cause the modified files to carry prominent notices stating that +you changed the files and the date of any change. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +b) You must cause any work that you distribute or publish, that in whole or +in part contains or is derived from the Program or any part thereof, to be +licensed as a whole at no charge to all third parties under the terms of this +License. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +c) If the modified program normally reads commands interactively when run, +you must cause it, when started running for such interactive use in the most +ordinary way, to print or display an announcement including an appropriate +copyright notice and a notice that there is no warranty (or else, saying that +you provide a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this License. +(Exception: if the Program itself is interactive but does not normally print +such an announcement, your work based on the Program is not required to print +an announcement.) - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, +and its terms, do not apply to those sections when you distribute them as +separate works. But when you distribute the same sections as part of a whole +which is a work based on the Program, the distribution of the whole must be +on the terms of this License, whose permissions for other licensees extend +to the entire whole, and thus to each and every part regardless of who wrote +it. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise +the right to control the distribution of derivative or collective works based +on the Program. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +In addition, mere aggregation of another work not based on the Program with +the Program (or with a work based on the Program) on a volume of a storage +or distribution medium does not bring the other work under the scope of this +License. - END OF TERMS AND CONDITIONS +3. You may copy and distribute the Program (or a work based on it, under Section - APPENDIX: How to apply the Apache License to your work. +2) in object code or executable form under the terms of Sections 1 and 2 above + provided that you also do one of the following: - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +a) Accompany it with the complete corresponding machine-readable source code, +which must be distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, - Copyright 2022 Tony Bark +b) Accompany it with a written offer, valid for at least three years, to give +any third party, for a charge no more than your cost of physically performing +source distribution, a complete machine-readable copy of the corresponding +source code, to be distributed under the terms of Sections 1 and 2 above on +a medium customarily used for software interchange; or, - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at +c) Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for noncommercial +distribution and only if you received the program in object code or executable +form with such an offer, in accord with Subsection b above.) - http://www.apache.org/licenses/LICENSE-2.0 +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code distributed +need not include anything that is normally distributed (in either source or +binary form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component itself +accompanies the executable. - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +If distribution of executable or object code is made by offering access to +copy from a designated place, then offering equivalent access to copy the +source code from the same place counts as distribution of the source code, +even though third parties are not compelled to copy the source along with +the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except + as expressly provided under this License. Any attempt otherwise to copy, modify, + sublicense or distribute the Program is void, and will automatically terminate + your rights under this License. However, parties who have received copies, + or rights, from you under this License will not have their licenses terminated + so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed + it. However, nothing else grants you permission to modify or distribute the + Program or its derivative works. These actions are prohibited by law if you + do not accept this License. Therefore, by modifying or distributing the Program + (or any work based on the Program), you indicate your acceptance of this License + to do so, and all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), + the recipient automatically receives a license from the original licensor + to copy, distribute or modify the Program subject to these terms and conditions. + You may not impose any further restrictions on the recipients' exercise of + the rights granted herein. You are not responsible for enforcing compliance + by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement + or for any other reason (not limited to patent issues), conditions are imposed + on you (whether by court order, agreement or otherwise) that contradict the + conditions of this License, they do not excuse you from the conditions of + this License. If you cannot distribute so as to satisfy simultaneously your + obligations under this License and any other pertinent obligations, then as + a consequence you may not distribute the Program at all. For example, if a + patent license would not permit royalty-free redistribution of the Program + by all those who receive copies directly or indirectly through you, then the + only way you could satisfy both it and this License would be to refrain entirely + from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents +or other property right claims or to contest validity of any such claims; +this section has the sole purpose of protecting the integrity of the free +software distribution system, which is implemented by public license practices. +Many people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose +that choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain + countries either by patents or by copyrighted interfaces, the original copyright + holder who places the Program under this License may add an explicit geographical + distribution limitation excluding those countries, so that distribution is + permitted only in or among countries not thus excluded. In such case, this + License incorporates the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of + the General Public License from time to time. Such new versions will be similar + in spirit to the present version, but may differ in detail to address new + problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies +a version number of this License which applies to it and "any later version", +you have the option of following the terms and conditions either of that version +or of any later version published by the Free Software Foundation. If the +Program does not specify a version number of this License, you may choose +any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs + whose distribution conditions are different, write to the author to ask for + permission. For software which is copyrighted by the Free Software Foundation, + write to the Free Software Foundation; we sometimes make exceptions for this. + Our decision will be guided by the two goals of preserving the free status + of all derivatives of our free software and of promoting the sharing and reuse + of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR + THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE + STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM + "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE + OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME + THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE + OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA + OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES + OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH + HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + + +Copyright (C) < yyyy> + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 51 Franklin +Street, Fifth Floor, Boston, MA 02110-1301, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when +it starts in an interactive mode: + +Gnomovision version 69, Copyright (C) year name of author Gnomovision comes +with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, +and you are welcome to redistribute it under certain conditions; type `show +c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than `show w' and `show c'; they could even be mouse-clicks +or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' +(which makes passes at compilers) written by James Hacker. + +, 1 April 1989 Ty Coon, President of Vice This General +Public License does not permit incorporating your program into proprietary +programs. If your program is a subroutine library, you may consider it more +useful to permit linking proprietary applications with the library. If this +is what you want to do, use the GNU Lesser General Public License instead +of this License. diff --git a/README.md b/README.md index 7e59551..c94c874 100644 --- a/README.md +++ b/README.md @@ -7,22 +7,22 @@

-City Limits is a re-imagining of SimCity Classic that brings modern city building concepts to the classic game. +Based on Godot, CityLimits is an open source reimagining of SimCity Classic based on Godot. In the long run, I plan on adding on gameplay mechanics used in later iterations. Like it's cousin, everything learned in the making of CityLimits will go towards the building and customization that I've been itching to create. ## Getting Started ### Prerequisites -- Godot Engine 3.x +- Godot Engine 4.x ## Authors - **Tony Bark** - _Initial work_ - [tonytins](https://github.com/tonytins) - **Maxis** - _Assets_ - [SimHacker](https://github.com/SimHacker/) -- **Font Awesome** - *Icons* - [FortAwesome](https://github.com/FortAwesome) +- **Font Awesome** - _Icons_ - [FortAwesome](https://github.com/FortAwesome) See also the list of [contributors](https://github.com/tonytins/citylimits/contributors) who participated in this project. ## License -In jurisdictions that recognize copyright waivers, I've [waived all copyright](UNLICENSE) and related or neighboring rights for to this project. In areas where these waivers are not recognized, [Apache-2.0](LICENSE) is enforced. +I license this project under the GPL-2.0-or-later license - see [LICENSE](LICENSE) for details. diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 2aba8ad..0000000 --- a/TODO.md +++ /dev/null @@ -1,6 +0,0 @@ -# To-do - -- Make zones upgradeable, similar to SimCity BuildIt -- Add Casey Universe buildings - - Central Tower - - Pawprint Press \ No newline at end of file diff --git a/UNLICENSE b/UNLICENSE deleted file mode 100644 index ee6c639..0000000 --- a/UNLICENSE +++ /dev/null @@ -1,22 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or distribute -this software, either in source code form or as a compiled binary, for any -purpose, commercial or non-commercial, and by any means. - -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and -to the detriment of our heirs and - -successors. We intend this dedication to be an overt act of relinquishment -in perpetuity of all present and future rights to this software under copyright -law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH -THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information, -please refer to diff --git a/addons/SpritesheetGenerator/Checker.png b/addons/SpritesheetGenerator/Checker.png new file mode 100644 index 0000000..f147f72 Binary files /dev/null and b/addons/SpritesheetGenerator/Checker.png differ diff --git a/addons/SpritesheetGenerator/Checker.png.import b/addons/SpritesheetGenerator/Checker.png.import new file mode 100644 index 0000000..7bcd8ec --- /dev/null +++ b/addons/SpritesheetGenerator/Checker.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnkl8rujlgv0h" +path="res://.godot/imported/Checker.png-95b82ca4c05ab143e1e16c56d598421b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/SpritesheetGenerator/Checker.png" +dest_files=["res://.godot/imported/Checker.png-95b82ca4c05ab143e1e16c56d598421b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/SpritesheetGenerator/SpriteSheetGenerator.gd b/addons/SpritesheetGenerator/SpriteSheetGenerator.gd new file mode 100644 index 0000000..cbb9bbe --- /dev/null +++ b/addons/SpritesheetGenerator/SpriteSheetGenerator.gd @@ -0,0 +1,13 @@ +@tool +extends EditorPlugin + +func _enter_tree() -> void: + add_tool_menu_item("Open Spritesheet Generator", run_generator) + get_editor_interface().get_command_palette().add_command("Open Spritesheet Generator", "addons/open_spritesheet_generator", run_generator) + +func _exit_tree() -> void: + remove_tool_menu_item("Open Spritesheet Generator") + get_editor_interface().get_command_palette().remove_command("addons/open_spritesheet_generator") + +func run_generator(): + get_editor_interface().play_custom_scene("res://addons/SpritesheetGenerator/SpritesheetGenerator.tscn") diff --git a/addons/SpritesheetGenerator/SpritesheetFrame.tscn b/addons/SpritesheetGenerator/SpritesheetFrame.tscn new file mode 100644 index 0000000..790cf62 --- /dev/null +++ b/addons/SpritesheetGenerator/SpritesheetFrame.tscn @@ -0,0 +1,77 @@ +[gd_scene load_steps=3 format=3 uid="uid://cd5wndu01c1sn"] + +[sub_resource type="StyleBoxFlat" id="2"] +resource_local_to_scene = true +bg_color = Color(0, 0.501961, 0.501961, 1) + +[sub_resource type="GDScript" id="3"] +resource_name = "Prefab" +script/source = "extends PanelContainer + +var odd: Vector2 + +func set_frame_margin(margin: Vector2): + $MarginContainer.add_theme_constant_override(&\"margin_left\", margin.x) + $MarginContainer.add_theme_constant_override(&\"margin_top\", margin.y) + + margin += odd + + $MarginContainer.add_theme_constant_override(&\"margin_right\", margin.x) + $MarginContainer.add_theme_constant_override(&\"margin_bottom\", margin.y) + +func set_texture(texture: Texture2D): + %TextureRect.texture = texture + odd = Vector2(int(get_texture_size().x) % 2, int(get_texture_size().y) % 2) + +func get_texture_size() -> Vector2: + return %TextureRect.texture.get_size() + +func get_position2() -> Vector2: + return position + %TextureRect.position + +func get_texture_data() -> Image: + return %TextureRect.texture.get_image() + +func set_display_background(display: bool): + get_theme_stylebox(&\"panel\").draw_center = display + +func set_background_color(color: Color): + get_theme_stylebox(&\"panel\").bg_color = color + +func _get_drag_data(p: Vector2): + var preview = TextureRect.new() + preview.texture = %TextureRect.texture + preview.ignore_texture_size = true + preview.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED + preview.size = Vector2(64, 64) + set_drag_preview(preview) + return {type = \"SpritesheetFrame\", node = self} + +func _can_drop_data(p: Vector2, data) -> bool: + return data is Dictionary and data.get(\"type\", \"\") == \"SpritesheetFrame\" + +func _drop_data(p: Vector2, data) -> void: + var index = get_index() + get_parent().move_child(self, data.node.get_index()) + get_parent().move_child(data.node, index) + get_tree().current_scene.refresh_grid() + +func _gui_input(event: InputEvent) -> void: + if event is InputEventMouseButton: + if event.pressed and event.button_index == MOUSE_BUTTON_RIGHT: + get_tree().current_scene.remove_frame.call_deferred(self) +" + +[node name="FramePrefab" type="PanelContainer" groups=["frame"]] +theme_override_styles/panel = SubResource("2") +script = SubResource("3") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 2 +mouse_filter = 2 + +[node name="TextureRect" type="TextureRect" parent="MarginContainer"] +unique_name_in_owner = true +texture_filter = 1 +layout_mode = 2 +stretch_mode = 4 diff --git a/addons/SpritesheetGenerator/SpritesheetGenerator.tscn b/addons/SpritesheetGenerator/SpritesheetGenerator.tscn new file mode 100644 index 0000000..c064e03 --- /dev/null +++ b/addons/SpritesheetGenerator/SpritesheetGenerator.tscn @@ -0,0 +1,714 @@ +[gd_scene load_steps=5 format=3 uid="uid://bf3b0i8scthbm"] + +[ext_resource type="Texture2D" uid="uid://bnkl8rujlgv0h" path="res://addons/SpritesheetGenerator/Checker.png" id="1_hs1uu"] + +[sub_resource type="GDScript" id="1"] +resource_name = "Generator" +script/source = "extends Control + +const SUPPORTED_FORMATS: PackedStringArray = [\"bmp\", \"dds\", \"exr\", \"hdr\", \"jpg\", \"jpeg\", \"png\", \"tga\", \"svg\", \"svgz\", \"webp\"] + +@onready var grid := %GridContainer + +var file_list: Array +var image_list: Array +var texture_list: Array + +var images_to_process: Array +var images_to_texturize: Array +var first_time := true +var image_count: int +var output_path: String + +var auto := true +var margin := Vector2.ONE + +var pan_origin: Vector2 +var pan_start: Vector2 + +signal images_processed + +func _enter_tree() -> void: + $SplitDialog.hide() + $StashDialog.hide() + +func _ready(): + $Status.text = $Status.text % \", \".join(SUPPORTED_FORMATS) + + get_viewport().files_dropped.connect(load_files) + grid.minimum_size_changed.connect(refresh_background) + set_process(false) + +func refresh_background(): + %Background.custom_minimum_size = grid.get_minimum_size() + +func load_files(files: PackedStringArray): + file_list.clear() + image_list.clear() + + %CustomName.text = \"\" + %Reload.disabled = false + %SavePNG.disabled = false + + if files.size() == 1 and not FileAccess.file_exists(files[0]): + var dir := DirAccess.open(files[0]) + if not dir: + show_error(\"Can't open directory.\") + return + + for file in dir.get_files(): + if file.get_extension() in SUPPORTED_FORMATS: + file_list.append(str(dir.get_current_dir().path_join(file))) + else: + var wrong_count: int + for file in files: + if file.get_extension() in SUPPORTED_FORMATS: + file_list.append(file) + else: + wrong_count += 1 + + if wrong_count > 0: + show_error(\"Skipped %s file(s) with unsupported extension.\" % wrong_count) + + if file_list.is_empty(): + show_error(\"No valid files or directories to process.\") + return + + load_images() + +func load_images(): + texture_list.clear() + + for image in grid.get_children(): + image.free() + + for image in %StashImages.get_children(): + image.free() + update_stash() + + var size_map: Dictionary + + if not file_list.is_empty(): + image_list = file_list.map(func(file: String): + var image := Image.load_from_file(file) + if image: + image.set_meta(&\"path\", file) + return image) + + for image in image_list: + if not image: + continue + + if not image.get_size() in size_map: + size_map[image.get_size()] = [] + size_map[image.get_size()].append(image) + + var output_name: String + var most_common_size: Vector2i + var most_common_count: int + + for size in size_map: + if size_map[size].size() > most_common_count: + most_common_size = size + most_common_count = size_map[size].size() + + for image in size_map[most_common_size]: + if output_path.is_empty(): + var path: String = image.get_meta(&\"path\", \"\") + output_path = path.get_base_dir() + output_name = path.get_base_dir().get_file() + + images_to_process.append(image) + size_map.clear() + + if not output_name.is_empty() and %CustomName.text.is_empty(): + %CustomName.text = output_name + update_save_button() + + if images_to_process.size() < file_list.size(): + show_error(\"Rejected %s image(s) due to size mismatch.\" % (file_list.size() - images_to_process.size())) + + if images_to_process.size() == 1: + if file_list.size() > 1: + images_to_process.clear() + show_error(\"Only one dropped image was valid.\") + else: + %SplitPreview.texture = ImageTexture.create_from_image(images_to_process[0]) + $SplitDialog.reset_size() + $SplitDialog.popup_centered() + + return + + $Status.show() + %CenterContainer.hide() + + image_count = images_to_process.size() + %Columns.max_value = image_count + + threshold = %Threshold.value + min_x = 9999999 + min_y = 9999999 + max_x = -9999999 + max_y = -9999999 + + set_process(true) + + await images_processed + + for texture in texture_list: + add_frame(texture) + + toggle_auto(auto) + refresh_margin() + + $Status.hide() + %CenterContainer.show() + +var threshold: float +var min_x: int +var min_y: int +var max_x: int +var max_y: int + +func _process(delta: float) -> void: + if not images_to_process.is_empty(): + var image: Image = images_to_process.pop_front() + $Status.text = str(\"Preprocessing image \", image_count - images_to_process.size(), \"/\", image_count) + + for x in image.get_width(): + for y in image.get_height(): + if image.get_pixel(x, y).a >= threshold: + min_x = mini(min_x, x) + min_y = mini(min_y, y) + max_x = maxi(max_x, x) + max_y = maxi(max_y, y) + + images_to_texturize.append(image) + elif not images_to_texturize.is_empty(): + var rect := Rect2i(min_x, min_y, max_x - min_x + 1, max_y - min_y + 1) + var image: Image = images_to_texturize.pop_front() + $Status.text = str(\"Creating texture \", image_count - images_to_texturize.size(), \"/\", image_count) + + var true_image := Image.create(rect.size.x, rect.size.y, false, image.get_format()) + true_image.blit_rect(image, rect, Vector2()) + + var texture := ImageTexture.create_from_image(true_image) + texture_list.append(texture) + + if images_to_texturize.is_empty(): + set_process(false) + images_processed.emit() + if first_time: + recenter() + first_time = false + +func toggle_grid(show: bool) -> void: + get_tree().call_group(&\"frame\", &\"set_display_background\", show) + +func toggle_auto(button_pressed: bool) -> void: + %Columns.editable = not button_pressed + auto = button_pressed + + if button_pressed: + var best: int + var best_score = -9999999 + + for i in range(1, image_count + 1): + var cols = i + var rows = ceili(image_count / float(i)) + + var score = image_count - cols * rows - maxi(cols, rows) - rows + if score > best_score: + best = i + best_score = score + + grid.columns = best + else: + grid.columns = %Columns.value + refresh_grid() + +func hmargin_changed(value: float) -> void: + margin.x = value + refresh_margin() + +func vmargin_changed(value: float) -> void: + margin.y = value + refresh_margin() + +func refresh_margin(): + get_tree().call_group(&\"frame\", &\"set_frame_margin\", margin) + +func columns_changed(value: float) -> void: + grid.columns = value + refresh_grid() + +func refresh_grid(): + var coord: Vector2 + var dark = false + + for rect in grid.get_children(): + rect.set_background_color(Color(0, 0, 0, 0.2 if dark else 0.1)) + dark = not dark + coord.x += 1 + + if coord.x == grid.columns: + coord.x = 0 + coord.y += 1 + dark = int(coord.y) % 2 == 1 + +func save_png() -> void: + var image_size: Vector2 = grid.get_child(0).get_minimum_size() + + var image := Image.create(image_size.x * grid.columns, image_size.y * (ceil(grid.get_child_count() / float(grid.columns))), false, Image.FORMAT_RGBA8) + + for rect in grid.get_children(): + image.blit_rect(rect.get_texture_data(), Rect2(Vector2(), image_size), rect.get_position2()) + + image.save_png(output_path.path_join(%CustomName.text) + \".png\") + +func show_error(text: String): + if not %Error.visible: + %Error.show() + else: + %Error.text += \"\\n\" + %Error.text += text + %Timer.start() + +func error_hidden() -> void: + %Error.text = \"\" + +func _input(event: InputEvent) -> void: + if event is InputEventMouseButton: + var cc: Control = %CenterContainer + + if event.button_index == MOUSE_BUTTON_MIDDLE: + if event.pressed: + pan_origin = get_local_mouse_position() + pan_start = cc.position + else: + pan_origin = Vector2() + + if event.button_index == MOUSE_BUTTON_WHEEL_DOWN: + var lm = cc.get_local_mouse_position() + cc.scale -= Vector2.ONE * 0.05 + if cc.scale.x <= 0: + cc.scale = Vector2.ONE * 0.05 + + cc.position -= (lm - cc.get_local_mouse_position()) * cc.scale + elif event.button_index == MOUSE_BUTTON_WHEEL_UP: + var lm = cc.get_local_mouse_position() + cc.scale += Vector2.ONE * 0.05 + cc.position -= (lm - cc.get_local_mouse_position()) * cc.scale + + if event is InputEventMouseMotion: + if pan_origin != Vector2(): + %CenterContainer.position = pan_start + (get_local_mouse_position() - pan_origin) + +func recenter() -> void: + %CenterContainer.position = get_viewport().size / 2 - Vector2i(%CenterContainer.size) / 2 + %CenterContainer.scale = Vector2.ONE + +func update_split_preview(): + %SplitPreview.queue_redraw() + +func draw_split_preview() -> void: + var preview: TextureRect = %SplitPreview + var frame_count := Vector2(%SplitX.value, %SplitY.value) + var frame_size := preview.size / frame_count + + for x in range(1, frame_count.x): + for y in int(frame_count.y): + preview.draw_line(frame_size * Vector2(x, y), frame_size * Vector2(x, y + 1), Color.WHITE) + preview.draw_line(frame_size * Vector2(x, y) + Vector2.RIGHT, frame_size * Vector2(x, y + 1) + Vector2.RIGHT, Color.BLACK) + + for y in range(1, frame_count.y): + for x in int(frame_count.x): + preview.draw_line(frame_size * Vector2(x, y), frame_size * Vector2(x + 1, y), Color.WHITE) + preview.draw_line(frame_size * Vector2(x, y) + Vector2.DOWN, frame_size * Vector2(x + 1, y) + Vector2.DOWN, Color.BLACK) + +func split_spritesheet() -> void: + file_list.clear() + image_list.clear() + + var image: Image = images_to_process[0] + var sub_image_size := image.get_size() / Vector2i(%SplitX.value, %SplitY.value) + + for y in %SplitY.value: + for x in %SplitX.value: + image_list.append(image.get_region(Rect2i(Vector2i(x, y) * sub_image_size, sub_image_size))) + + images_to_process.clear() + load_images() + +func remove_frame(frame): + var image: Image = frame.get_texture_data() + var texture := ImageTexture.create_from_image(image) + + var button := TextureButton.new() + button.texture_normal = texture + button.custom_minimum_size = Vector2(128, 128) + button.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT_CENTERED + button.ignore_texture_size = true + button.pressed.connect(re_add_image.bind(button), CONNECT_DEFERRED) + %StashImages.add_child(button) + + var ref := ReferenceRect.new() + button.add_child(ref) + ref.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) + ref.mouse_filter = Control.MOUSE_FILTER_IGNORE + ref.editor_only = false + + frame.free() + refresh_grid() + update_stash() + +func update_stash(): + %Stash.disabled = %StashImages.get_child_count() == 0 + +func re_add_image(tb: TextureButton): + add_frame(tb.texture_normal) + tb.free() + refresh_grid() + update_stash() + + if %Stash.disabled: + $StashDialog.hide() + +func add_frame(texture: Texture2D): + var rect := preload(\"res://addons/SpritesheetGenerator/SpritesheetFrame.tscn\").instantiate() + rect.set_texture(texture) + rect.set_display_background(%DisplayGrid.button_pressed) + rect.set_frame_margin(margin) + grid.add_child(rect) + +func update_save_button() -> void: + %SavePNG.disabled = %CustomName.text.is_empty() +" + +[sub_resource type="StyleBoxFlat" id="5"] +content_margin_left = 20.0 +content_margin_top = 20.0 +content_margin_right = 20.0 +content_margin_bottom = 20.0 +bg_color = Color(0, 0, 0, 0.25098) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_kjgn5"] +texture = ExtResource("1_hs1uu") +axis_stretch_horizontal = 1 +axis_stretch_vertical = 1 + +[node name="Main" type="HBoxContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +script = SubResource("1") + +[node name="MarginContainer" type="PanelContainer" parent="."] +layout_mode = 2 +theme_override_styles/panel = SubResource("5") + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +layout_mode = 2 +theme_override_constants/separation = 10 + +[node name="Label5" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Alpha Threshold" +horizontal_alignment = 1 + +[node name="Threshold" type="SpinBox" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +max_value = 1.0 +step = 0.005 +value = 0.9 + +[node name="Reload" type="Button" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +disabled = true +text = "Reload" + +[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Columns" +horizontal_alignment = 1 + +[node name="Columns" type="SpinBox" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +min_value = 1.0 +value = 1.0 +editable = false + +[node name="Grid" type="CheckButton" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +button_pressed = true +text = "Auto" + +[node name="Label3" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Horizontal Margin" +horizontal_alignment = 1 + +[node name="MarginH" type="SpinBox" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +value = 1.0 +suffix = "px" + +[node name="Label4" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Vertical Margin" +horizontal_alignment = 1 + +[node name="MarginV" type="SpinBox" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +max_value = 128.0 +value = 1.0 +suffix = "px" + +[node name="Stash" type="Button" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +disabled = true +text = "Image Stash" + +[node name="HSeparator2" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Button" type="Button" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Recenter View +" + +[node name="DisplayGrid" type="CheckBox" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +button_pressed = true +text = "Show Grid" + +[node name="HSeparator3" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="CustomName" type="LineEdit" parent="MarginContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +placeholder_text = "Image Name" + +[node name="SavePNG" type="Button" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +disabled = true +text = "Save PNG" + +[node name="Status" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Drop folder or image files here to start. + +Images should be of the same size. If their sizes don't match, the generator will try to use the dominating size. + +The images will be automatically cropped based on the Alpha Threshold value. Greater value means more exact crop. + +Supported formats: %s + +If you drop a single image, the generator will instead edit it as spritesheet." +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="View" type="CanvasLayer" parent="."] +layer = -1 + +[node name="CenterContainer" type="CenterContainer" parent="View"] +unique_name_in_owner = true +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 + +[node name="Background" type="ColorRect" parent="View/CenterContainer"] +unique_name_in_owner = true +layout_mode = 2 +mouse_filter = 1 +color = Color(0, 0.501961, 0.501961, 1) + +[node name="GridContainer" type="GridContainer" parent="View/CenterContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme_override_constants/h_separation = 0 +theme_override_constants/v_separation = 0 +columns = 3 + +[node name="VBoxContainer" type="GridContainer" parent="View"] +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -40.0 +grow_horizontal = 0 +grow_vertical = 0 +mouse_filter = 2 +columns = 3 + +[node name="Label" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "LMB" +horizontal_alignment = 1 + +[node name="VSeparator" type="VSeparator" parent="View/VBoxContainer"] +layout_mode = 2 + +[node name="Label2" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "rearrange images" + +[node name="Label3" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "RMB" +horizontal_alignment = 1 + +[node name="VSeparator2" type="VSeparator" parent="View/VBoxContainer"] +layout_mode = 2 + +[node name="Label4" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "delete images" + +[node name="Label5" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "MMB" +horizontal_alignment = 1 + +[node name="VSeparator3" type="VSeparator" parent="View/VBoxContainer"] +layout_mode = 2 + +[node name="Label6" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "pan view" + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="Error" type="Label" parent="CanvasLayer"] +unique_name_in_owner = true +modulate = Color(1, 0, 0, 1) +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -14.0 +grow_horizontal = 2 +grow_vertical = 0 +size_flags_vertical = 0 +horizontal_alignment = 1 + +[node name="Timer" type="Timer" parent="CanvasLayer"] +unique_name_in_owner = true +wait_time = 5.0 +one_shot = true + +[node name="SplitDialog" type="ConfirmationDialog" parent="."] +title = "Edit Spritesheet" +position = Vector2i(-500, 0) +size = Vector2i(272, 343) +visible = true + +[node name="VBoxContainer" type="VBoxContainer" parent="SplitDialog"] +offset_left = 8.0 +offset_top = 8.0 +offset_right = 264.0 +offset_bottom = 294.0 + +[node name="Label" type="Label" parent="SplitDialog/VBoxContainer"] +layout_mode = 2 +text = "Split Frames" +horizontal_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="SplitDialog/VBoxContainer"] +layout_mode = 2 +alignment = 1 + +[node name="SplitX" type="SpinBox" parent="SplitDialog/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +min_value = 1.0 +max_value = 1000.0 +value = 1.0 +select_all_on_focus = true + +[node name="Label" type="Label" parent="SplitDialog/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "x" + +[node name="SplitY" type="SpinBox" parent="SplitDialog/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +min_value = 1.0 +max_value = 1000.0 +value = 1.0 +select_all_on_focus = true + +[node name="CenterContainer" type="CenterContainer" parent="SplitDialog/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="PanelContainer" type="PanelContainer" parent="SplitDialog/VBoxContainer/CenterContainer"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxTexture_kjgn5") + +[node name="SplitPreview" type="TextureRect" parent="SplitDialog/VBoxContainer/CenterContainer/PanelContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="StashDialog" type="AcceptDialog" parent="."] +title = "Image Stash" +position = Vector2i(-500, 500) +size = Vector2i(309, 100) +visible = true + +[node name="VBoxContainer" type="VBoxContainer" parent="StashDialog"] +offset_left = 8.0 +offset_top = 8.0 +offset_right = 301.0 +offset_bottom = 51.0 + +[node name="Label" type="Label" parent="StashDialog/VBoxContainer"] +layout_mode = 2 +text = "Click frame to re-add it to spritesheet." +horizontal_alignment = 1 + +[node name="StashImages" type="HFlowContainer" parent="StashDialog/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[connection signal="pressed" from="MarginContainer/VBoxContainer/Reload" to="." method="load_images"] +[connection signal="value_changed" from="MarginContainer/VBoxContainer/Columns" to="." method="columns_changed"] +[connection signal="toggled" from="MarginContainer/VBoxContainer/Grid" to="." method="toggle_auto"] +[connection signal="value_changed" from="MarginContainer/VBoxContainer/MarginH" to="." method="hmargin_changed"] +[connection signal="value_changed" from="MarginContainer/VBoxContainer/MarginV" to="." method="vmargin_changed"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/Stash" to="StashDialog" method="popup_centered_ratio" binds= [0.5]] +[connection signal="pressed" from="MarginContainer/VBoxContainer/Button" to="." method="recenter"] +[connection signal="toggled" from="MarginContainer/VBoxContainer/DisplayGrid" to="." method="toggle_grid"] +[connection signal="text_changed" from="MarginContainer/VBoxContainer/HBoxContainer/CustomName" to="." method="update_save_button" unbinds=1] +[connection signal="pressed" from="MarginContainer/VBoxContainer/SavePNG" to="." method="save_png"] +[connection signal="hidden" from="CanvasLayer/Error" to="." method="error_hidden"] +[connection signal="timeout" from="CanvasLayer/Timer" to="CanvasLayer/Error" method="hide"] +[connection signal="confirmed" from="SplitDialog" to="." method="split_spritesheet"] +[connection signal="value_changed" from="SplitDialog/VBoxContainer/HBoxContainer/SplitX" to="." method="update_split_preview" unbinds=1] +[connection signal="value_changed" from="SplitDialog/VBoxContainer/HBoxContainer/SplitY" to="." method="update_split_preview" unbinds=1] +[connection signal="draw" from="SplitDialog/VBoxContainer/CenterContainer/PanelContainer/SplitPreview" to="." method="draw_split_preview"] diff --git a/addons/SpritesheetGenerator/plugin.cfg b/addons/SpritesheetGenerator/plugin.cfg new file mode 100644 index 0000000..08a28bf --- /dev/null +++ b/addons/SpritesheetGenerator/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Spritesheet Generator" +description="Generates cropped spritesheets from multiple images." +author="KoBeWi" +version="1.2" +script="SpriteSheetGenerator.gd" diff --git a/addons/beehave/blackboard.gd b/addons/beehave/blackboard.gd deleted file mode 100644 index 4cff1ce..0000000 --- a/addons/beehave/blackboard.gd +++ /dev/null @@ -1,24 +0,0 @@ -extends Reference - -var blackboard = {} - -func set(key, value, blackboard_name = 'default'): - if not blackboard.has(blackboard_name): - blackboard[blackboard_name] = {} - - blackboard[blackboard_name][key] = value - - -func get(key, default_value = null, blackboard_name = 'default'): - if has(key, blackboard_name): - return blackboard[blackboard_name].get(key, default_value) - return default_value - - -func has(key, blackboard_name = 'default'): - return blackboard.has(blackboard_name) and blackboard[blackboard_name].has(key) and blackboard[blackboard_name][key] != null - - -func erase(key, blackboard_name = 'default'): - if blackboard.has(blackboard_name): - blackboard[blackboard_name][key] = null diff --git a/addons/beehave/icons/action.svg b/addons/beehave/icons/action.svg deleted file mode 100644 index 7c224d5..0000000 --- a/addons/beehave/icons/action.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/action.svg.import b/addons/beehave/icons/action.svg.import deleted file mode 100644 index ee085b3..0000000 --- a/addons/beehave/icons/action.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/action.svg-e8a91246d0ba9ba3cf84290d65648f06.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/action.svg" -dest_files=[ "res://.import/action.svg-e8a91246d0ba9ba3cf84290d65648f06.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/blackboard.svg b/addons/beehave/icons/blackboard.svg deleted file mode 100644 index af009c6..0000000 --- a/addons/beehave/icons/blackboard.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/blackboard.svg.import b/addons/beehave/icons/blackboard.svg.import deleted file mode 100644 index fd5d540..0000000 --- a/addons/beehave/icons/blackboard.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/blackboard.svg-18d4dfd4f6de558de250b67251ff1e69.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/blackboard.svg" -dest_files=[ "res://.import/blackboard.svg-18d4dfd4f6de558de250b67251ff1e69.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/category_bt.svg b/addons/beehave/icons/category_bt.svg deleted file mode 100644 index ab92d03..0000000 --- a/addons/beehave/icons/category_bt.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/category_bt.svg.import b/addons/beehave/icons/category_bt.svg.import deleted file mode 100644 index f8400a5..0000000 --- a/addons/beehave/icons/category_bt.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/category_bt.svg-8537bebd1c5f62dca3d7ee7f17efeed4.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/category_bt.svg" -dest_files=[ "res://.import/category_bt.svg-8537bebd1c5f62dca3d7ee7f17efeed4.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/category_composite.svg b/addons/beehave/icons/category_composite.svg deleted file mode 100644 index 0f157de..0000000 --- a/addons/beehave/icons/category_composite.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/category_composite.svg.import b/addons/beehave/icons/category_composite.svg.import deleted file mode 100644 index 75f2a39..0000000 --- a/addons/beehave/icons/category_composite.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/category_composite.svg-43f66e63a7ccfa5ac8ec6da0583b3246.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/category_composite.svg" -dest_files=[ "res://.import/category_composite.svg-43f66e63a7ccfa5ac8ec6da0583b3246.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/category_decorator.svg b/addons/beehave/icons/category_decorator.svg deleted file mode 100644 index 02c0375..0000000 --- a/addons/beehave/icons/category_decorator.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/category_decorator.svg.import b/addons/beehave/icons/category_decorator.svg.import deleted file mode 100644 index b4687fd..0000000 --- a/addons/beehave/icons/category_decorator.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/category_decorator.svg-79d598d6456f32724156248e09d6eaf3.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/category_decorator.svg" -dest_files=[ "res://.import/category_decorator.svg-79d598d6456f32724156248e09d6eaf3.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/condition.svg b/addons/beehave/icons/condition.svg deleted file mode 100644 index 5d7bbb0..0000000 --- a/addons/beehave/icons/condition.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/condition.svg.import b/addons/beehave/icons/condition.svg.import deleted file mode 100644 index 9e499d7..0000000 --- a/addons/beehave/icons/condition.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/condition.svg-57892684b10a64086f68c09c388b17e5.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/condition.svg" -dest_files=[ "res://.import/condition.svg-57892684b10a64086f68c09c388b17e5.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/fail.svg b/addons/beehave/icons/fail.svg deleted file mode 100644 index d96bb98..0000000 --- a/addons/beehave/icons/fail.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/fail.svg.import b/addons/beehave/icons/fail.svg.import deleted file mode 100644 index 103fcc3..0000000 --- a/addons/beehave/icons/fail.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/fail.svg-85247bd8065819a11b971d222d3d43bb.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/fail.svg" -dest_files=[ "res://.import/fail.svg-85247bd8065819a11b971d222d3d43bb.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/inverter.svg b/addons/beehave/icons/inverter.svg deleted file mode 100644 index 45b8e97..0000000 --- a/addons/beehave/icons/inverter.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/inverter.svg.import b/addons/beehave/icons/inverter.svg.import deleted file mode 100644 index a3b53d7..0000000 --- a/addons/beehave/icons/inverter.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/inverter.svg-1f1b976d95de42c4ad99a92fa9a6c5d0.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/inverter.svg" -dest_files=[ "res://.import/inverter.svg-1f1b976d95de42c4ad99a92fa9a6c5d0.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/limiter.svg b/addons/beehave/icons/limiter.svg deleted file mode 100644 index 2d6bbb6..0000000 --- a/addons/beehave/icons/limiter.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/limiter.svg.import b/addons/beehave/icons/limiter.svg.import deleted file mode 100644 index 8a02cf0..0000000 --- a/addons/beehave/icons/limiter.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/limiter.svg-b4c7646605c46f53c5e403fe21d8f584.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/limiter.svg" -dest_files=[ "res://.import/limiter.svg-b4c7646605c46f53c5e403fe21d8f584.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/selector.svg b/addons/beehave/icons/selector.svg deleted file mode 100644 index 01b107a..0000000 --- a/addons/beehave/icons/selector.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/selector.svg.import b/addons/beehave/icons/selector.svg.import deleted file mode 100644 index 05bed9c..0000000 --- a/addons/beehave/icons/selector.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/selector.svg-78bccfc448bd1676b5a29bfde4b08e5b.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/selector.svg" -dest_files=[ "res://.import/selector.svg-78bccfc448bd1676b5a29bfde4b08e5b.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/selector_star.svg b/addons/beehave/icons/selector_star.svg deleted file mode 100644 index e112337..0000000 --- a/addons/beehave/icons/selector_star.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/addons/beehave/icons/selector_star.svg.import b/addons/beehave/icons/selector_star.svg.import deleted file mode 100644 index 2b6ac98..0000000 --- a/addons/beehave/icons/selector_star.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/selector_star.svg-368af7abfb9842c3f4258786871d1f03.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/selector_star.svg" -dest_files=[ "res://.import/selector_star.svg-368af7abfb9842c3f4258786871d1f03.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/addons/beehave/icons/sequencer.svg b/addons/beehave/icons/sequencer.svg deleted file mode 100644 index 1304ab0..0000000 --- a/addons/beehave/icons/sequencer.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/sequencer.svg.import b/addons/beehave/icons/sequencer.svg.import deleted file mode 100644 index c4358f4..0000000 --- a/addons/beehave/icons/sequencer.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/sequencer.svg-a7b0e1cc6b00c0067836f9a81d0b2f9b.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/sequencer.svg" -dest_files=[ "res://.import/sequencer.svg-a7b0e1cc6b00c0067836f9a81d0b2f9b.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/sequencer_star.svg b/addons/beehave/icons/sequencer_star.svg deleted file mode 100644 index 66efd5c..0000000 --- a/addons/beehave/icons/sequencer_star.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/addons/beehave/icons/sequencer_star.svg.import b/addons/beehave/icons/sequencer_star.svg.import deleted file mode 100644 index 6bfbf77..0000000 --- a/addons/beehave/icons/sequencer_star.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/sequencer_star.svg-2385cbba0c38b4d4ec43e0996f8a3493.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/sequencer_star.svg" -dest_files=[ "res://.import/sequencer_star.svg-2385cbba0c38b4d4ec43e0996f8a3493.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/addons/beehave/icons/succeed.svg b/addons/beehave/icons/succeed.svg deleted file mode 100644 index d8c5133..0000000 --- a/addons/beehave/icons/succeed.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/succeed.svg.import b/addons/beehave/icons/succeed.svg.import deleted file mode 100644 index 0b98563..0000000 --- a/addons/beehave/icons/succeed.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/succeed.svg-c70f0a6f3d9b2864e4771942f0762307.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/succeed.svg" -dest_files=[ "res://.import/succeed.svg-c70f0a6f3d9b2864e4771942f0762307.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/icons/tree.svg b/addons/beehave/icons/tree.svg deleted file mode 100644 index 26dac9f..0000000 --- a/addons/beehave/icons/tree.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/addons/beehave/icons/tree.svg.import b/addons/beehave/icons/tree.svg.import deleted file mode 100644 index 028a5a1..0000000 --- a/addons/beehave/icons/tree.svg.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/tree.svg-c0b20ed88b2fe300c0296f7236049076.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/beehave/icons/tree.svg" -dest_files=[ "res://.import/tree.svg-c0b20ed88b2fe300c0296f7236049076.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/addons/beehave/nodes/beehave_node.gd b/addons/beehave/nodes/beehave_node.gd deleted file mode 100644 index d52e67b..0000000 --- a/addons/beehave/nodes/beehave_node.gd +++ /dev/null @@ -1,8 +0,0 @@ -extends BeehaveTree - -class_name BeehaveNode, "../icons/action.svg" - -enum { SUCCESS, FAILURE, RUNNING } - -func tick(actor, blackboard): - pass diff --git a/addons/beehave/nodes/beehave_root.gd b/addons/beehave/nodes/beehave_root.gd deleted file mode 100644 index 5201cc7..0000000 --- a/addons/beehave/nodes/beehave_root.gd +++ /dev/null @@ -1,84 +0,0 @@ -extends BeehaveTree - -class_name BeehaveRoot, "../icons/tree.svg" - -const Blackboard = preload("../blackboard.gd") -const SUCCESS = 0 -const FAILURE = 1 -const RUNNING = 2 - -enum ProcessMode { - PHYSICS_PROCESS, - IDLE, - MANUAL -} - -export (ProcessMode) var process_mode = ProcessMode.PHYSICS_PROCESS setget set_process_mode -export (bool) var enabled = true - -export (NodePath) var actor_node_path - -var actor : Node - -onready var blackboard = Blackboard.new() - -func _ready(): - if self.get_child_count() != 1: - push_error("Beehave error: Root %s should have one child (NodePath: %s)" % [self.name, self.get_path()]) - disable() - return - - actor = get_parent() - if actor_node_path: - actor = get_node(actor_node_path) - - set_process_mode(self.process_mode) - -func _process(delta): - tick(delta) - -func _physics_process(delta): - tick(delta) - -func tick(delta): - blackboard.set("delta", delta) - - var status = self.get_child(0).tick(actor, blackboard) - - if status != RUNNING: - blackboard.set("running_action", null) - -func get_running_action(): - if blackboard.has("running_action"): - return blackboard.get("running_action") - return null - -func get_last_condition(): - if blackboard.has("last_condition"): - return blackboard.get("last_condition") - return null - -func get_last_condition_status(): - if blackboard.has("last_condition_status"): - var status = blackboard.get("last_condition_status") - if status == SUCCESS: - return "SUCCESS" - elif status == FAILURE: - return "FAILURE" - else: - return "RUNNING" - return "" - -func enable(): - self.enabled = true - set_process_mode(self.process_mode) - -func disable(): - self.enabled = false - set_process(self.enabled) - set_physics_process(self.enabled) - -func set_process_mode(value): - process_mode = value - set_process(process_mode == ProcessMode.IDLE) - set_physics_process(process_mode == ProcessMode.PHYSICS_PROCESS) diff --git a/addons/beehave/nodes/beehave_tree.gd b/addons/beehave/nodes/beehave_tree.gd deleted file mode 100644 index 9def663..0000000 --- a/addons/beehave/nodes/beehave_tree.gd +++ /dev/null @@ -1,3 +0,0 @@ -extends Node - -class_name BeehaveTree diff --git a/addons/beehave/nodes/composites/composite.gd b/addons/beehave/nodes/composites/composite.gd deleted file mode 100644 index 5a691f9..0000000 --- a/addons/beehave/nodes/composites/composite.gd +++ /dev/null @@ -1,8 +0,0 @@ -extends BeehaveNode - -class_name Composite, "../../icons/category_composite.svg" - - -func _ready(): - if self.get_child_count() < 1: - push_error("BehaviorTree Error: Composite %s should have at least one child (NodePath: %s)" % [self.name, self.get_path()]) diff --git a/addons/beehave/nodes/composites/selector.gd b/addons/beehave/nodes/composites/selector.gd deleted file mode 100644 index f78be66..0000000 --- a/addons/beehave/nodes/composites/selector.gd +++ /dev/null @@ -1,18 +0,0 @@ -extends Composite - -class_name SelectorComposite, "../../icons/selector.svg" - -func tick(actor, blackboard): - for c in get_children(): - var response = c.tick(actor, blackboard) - - if c is ConditionLeaf: - blackboard.set("last_condition", c) - blackboard.set("last_condition_status", response) - - if response != FAILURE: - if c is ActionLeaf and response == RUNNING: - blackboard.set("running_action", c) - return response - - return FAILURE diff --git a/addons/beehave/nodes/composites/selector_star.gd b/addons/beehave/nodes/composites/selector_star.gd deleted file mode 100644 index 0a272b5..0000000 --- a/addons/beehave/nodes/composites/selector_star.gd +++ /dev/null @@ -1,33 +0,0 @@ -# Special implementation of a selector that will -# "wait" for running nodes and will not re-attempt -# to execute previous nodes until that node is either -# FAILED or SUCCEEDED -extends Composite - -class_name SelectorStarComposite, "../../icons/selector_star.svg" - - -var last_execution_index = 0 - -func tick(actor, blackboard): - for c in get_children(): - if c.get_index() < last_execution_index: - continue - - var response = c.tick(actor, blackboard) - - if c is ConditionLeaf: - blackboard.set("last_condition", c) - blackboard.set("last_condition_status", response) - - if response != FAILURE: - if c is ActionLeaf and response == RUNNING: - blackboard.set("running_action", c) - if response == SUCCESS: - last_execution_index = 0 - return response - else: - last_execution_index += 1 - - last_execution_index = 0 - return FAILURE diff --git a/addons/beehave/nodes/composites/sequence.gd b/addons/beehave/nodes/composites/sequence.gd deleted file mode 100644 index 52d401d..0000000 --- a/addons/beehave/nodes/composites/sequence.gd +++ /dev/null @@ -1,18 +0,0 @@ -extends Composite - -class_name SequenceComposite, "../../icons/sequencer.svg" - -func tick(actor, blackboard): - for c in get_children(): - var response = c.tick(actor, blackboard) - - if c is ConditionLeaf: - blackboard.set("last_condition", c) - blackboard.set("last_condition_status", response) - - if response != SUCCESS: - if c is ActionLeaf and response == RUNNING: - blackboard.set("running_action", c) - return response - - return SUCCESS diff --git a/addons/beehave/nodes/composites/sequence_star.gd b/addons/beehave/nodes/composites/sequence_star.gd deleted file mode 100644 index f0ae03f..0000000 --- a/addons/beehave/nodes/composites/sequence_star.gd +++ /dev/null @@ -1,35 +0,0 @@ -# Special implementation of sequencer who will execute -# successful nodes only once until all nodes were successful - -extends Composite - -class_name SequenceStarComposite, "../../icons/sequencer_star.svg" - -var successful_index = 0 - -func tick(actor, blackboard): - for c in get_children(): - if c.get_index() < successful_index: - continue - - var response = c.tick(actor, blackboard) - - if c is ConditionLeaf: - blackboard.set("last_condition", c) - blackboard.set("last_condition_status", response) - - if response != SUCCESS: - if response == FAILURE: - successful_index = 0 - if c is ActionLeaf and response == RUNNING: - blackboard.set("running_action", c) - return response - else: - successful_index += 1 - - if successful_index == get_child_count(): - successful_index = 0 - return SUCCESS - else: - successful_index = 0 - return FAILURE diff --git a/addons/beehave/nodes/decorators/decorator.gd b/addons/beehave/nodes/decorators/decorator.gd deleted file mode 100644 index b0568d5..0000000 --- a/addons/beehave/nodes/decorators/decorator.gd +++ /dev/null @@ -1,8 +0,0 @@ -extends BeehaveNode - -class_name Decorator, "../../icons/category_decorator.svg" - - -func _ready(): - if self.get_child_count() != 1: - push_error("Beehave Error: Decorator %s should have only one child (NodePath: %s)" % [self.name, self.get_path()]) diff --git a/addons/beehave/nodes/decorators/failer.gd b/addons/beehave/nodes/decorators/failer.gd deleted file mode 100644 index 15dfef4..0000000 --- a/addons/beehave/nodes/decorators/failer.gd +++ /dev/null @@ -1,11 +0,0 @@ -extends Decorator - -class_name AlwaysFailDecorator, "../../icons/fail.svg" - - -func tick(action, blackboard): - for c in get_children(): - var response = c.tick(action, blackboard) - if response == RUNNING: - return RUNNING - return FAILURE diff --git a/addons/beehave/nodes/decorators/inverter.gd b/addons/beehave/nodes/decorators/inverter.gd deleted file mode 100644 index e1e70ea..0000000 --- a/addons/beehave/nodes/decorators/inverter.gd +++ /dev/null @@ -1,17 +0,0 @@ -extends Decorator - -class_name InverterDecorator, "../../icons/inverter.svg" - - -func tick(action, blackboard): - for c in get_children(): - var response = c.tick(action, blackboard) - - if response == SUCCESS: - return FAILURE - if response == FAILURE: - return SUCCESS - - if c is Leaf and response == RUNNING: - blackboard.set("running_action", c) - return RUNNING diff --git a/addons/beehave/nodes/decorators/limiter.gd b/addons/beehave/nodes/decorators/limiter.gd deleted file mode 100644 index 725f784..0000000 --- a/addons/beehave/nodes/decorators/limiter.gd +++ /dev/null @@ -1,19 +0,0 @@ -extends Decorator - -class_name LimiterDecorator, "../../icons/limiter.svg" - -onready var cache_key = 'limiter_%s' % self.get_instance_id() - -export (float) var max_count = 0 - -func tick(actor, blackboard): - var current_count = blackboard.get(cache_key) - - if current_count == null: - current_count = 0 - - if current_count <= max_count: - blackboard.set(cache_key, current_count + 1) - return self.get_child(0).tick(actor, blackboard) - else: - return FAILED diff --git a/addons/beehave/nodes/decorators/succeeder.gd b/addons/beehave/nodes/decorators/succeeder.gd deleted file mode 100644 index 1a7bacf..0000000 --- a/addons/beehave/nodes/decorators/succeeder.gd +++ /dev/null @@ -1,11 +0,0 @@ -extends Decorator - -class_name AlwaysSucceedDecorator, "../../icons/succeed.svg" - - -func tick(action, blackboard): - for c in get_children(): - var response = c.tick(action, blackboard) - if response == RUNNING: - return RUNNING - return SUCCESS diff --git a/addons/beehave/nodes/leaves/action.gd b/addons/beehave/nodes/leaves/action.gd deleted file mode 100644 index a30041d..0000000 --- a/addons/beehave/nodes/leaves/action.gd +++ /dev/null @@ -1,3 +0,0 @@ -extends Leaf - -class_name ActionLeaf, "../../icons/action.svg" diff --git a/addons/beehave/nodes/leaves/condition.gd b/addons/beehave/nodes/leaves/condition.gd deleted file mode 100644 index d91ff37..0000000 --- a/addons/beehave/nodes/leaves/condition.gd +++ /dev/null @@ -1,3 +0,0 @@ -extends Leaf - -class_name ConditionLeaf, "../../icons/condition.svg" diff --git a/addons/beehave/nodes/leaves/leaf.gd b/addons/beehave/nodes/leaves/leaf.gd deleted file mode 100644 index 503fa1b..0000000 --- a/addons/beehave/nodes/leaves/leaf.gd +++ /dev/null @@ -1,3 +0,0 @@ -extends BeehaveNode - -class_name Leaf, "../../icons/action.svg" diff --git a/addons/beehave/plugin.cfg b/addons/beehave/plugin.cfg deleted file mode 100644 index 7a1b19b..0000000 --- a/addons/beehave/plugin.cfg +++ /dev/null @@ -1,7 +0,0 @@ -[plugin] - -name="Beehave" -description="🐝 Behaviour Tree addon for Godot Engine" -author="bitbrain" -version="1.2.0" -script="plugin.gd" diff --git a/addons/beehave/plugin.gd b/addons/beehave/plugin.gd deleted file mode 100644 index d670e1b..0000000 --- a/addons/beehave/plugin.gd +++ /dev/null @@ -1,5 +0,0 @@ -tool -extends EditorPlugin - -func _init(): - print("Beehave initialized!") diff --git a/addons/fontawesome/All.gd b/addons/fontawesome/All.gd new file mode 100644 index 0000000..4ef5a8c --- /dev/null +++ b/addons/fontawesome/All.gd @@ -0,0 +1,2029 @@ +## AUTOGENERATED BY dump_eet.html, DO NOT MODIFY!!! +const all: Dictionary = { + "regular": { + "trash-can": "\uf2ed", + "message": "\uf27a", + "file-lines": "\uf15c", + "calendar-days": "\uf073", + "hand-point-right": "\uf0a4", + "face-smile-beam": "\uf5b8", + "face-grin-stars": "\uf587", + "address-book": "\uf2b9", + "comments": "\uf086", + "paste": "\uf0ea", + "face-grin-tongue-squint": "\uf58a", + "face-flushed": "\uf579", + "square-caret-right": "\uf152", + "square-minus": "\uf146", + "compass": "\uf14e", + "square-caret-down": "\uf150", + "face-kiss-beam": "\uf597", + "lightbulb": "\uf0eb", + "flag": "\uf024", + "square-check": "\uf14a", + "circle-dot": "\uf192", + "face-dizzy": "\uf567", + "futbol": "\uf1e3", + "pen-to-square": "\uf044", + "hourglass-half": "\uf252", + "eye-slash": "\uf070", + "hand": "\uf256", + "hand-spock": "\uf259", + "face-kiss": "\uf596", + "face-grin-tongue": "\uf589", + "chess-bishop": "\uf43a", + "face-grin-wink": "\uf58c", + "face-grin-wide": "\uf581", + "face-frown-open": "\uf57a", + "hand-point-up": "\uf0a6", + "bookmark": "\uf02e", + "hand-point-down": "\uf0a7", + "folder": "\uf07b", + "user": "\uf007", + "square-caret-left": "\uf191", + "star": "\uf005", + "chess-knight": "\uf441", + "face-laugh-squint": "\uf59b", + "face-laugh": "\uf599", + "folder-open": "\uf07c", + "clipboard": "\uf328", + "chess-queen": "\uf445", + "hand-back-fist": "\uf255", + "square-caret-up": "\uf151", + "chart-bar": "\uf080", + "window-restore": "\uf2d2", + "square-plus": "\uf0fe", + "image": "\uf03e", + "folder-closed": "\ue185", + "lemon": "\uf094", + "handshake": "\uf2b5", + "gem": "\uf3a5", + "circle-play": "\uf144", + "circle-check": "\uf058", + "circle-stop": "\uf28d", + "id-badge": "\uf2c1", + "face-laugh-beam": "\uf59a", + "registered": "\uf25d", + "address-card": "\uf2bb", + "face-tired": "\uf5c8", + "font-awesome": "\uf2b4", + "face-smile-wink": "\uf4da", + "file-word": "\uf1c2", + "file-powerpoint": "\uf1c4", + "envelope-open": "\uf2b6", + "file-zipper": "\uf1c6", + "square": "\uf0c8", + "snowflake": "\uf2dc", + "newspaper": "\uf1ea", + "face-kiss-wink-heart": "\uf598", + "star-half-stroke": "\uf5c0", + "file-excel": "\uf1c3", + "face-grin-beam": "\uf582", + "object-ungroup": "\uf248", + "circle-right": "\uf35a", + "face-rolling-eyes": "\uf5a5", + "object-group": "\uf247", + "heart": "\uf004", + "face-surprise": "\uf5c2", + "circle-pause": "\uf28b", + "circle": "\uf111", + "circle-up": "\uf35b", + "file-audio": "\uf1c7", + "file-image": "\uf1c5", + "circle-question": "\uf059", + "face-meh-blank": "\uf5a4", + "eye": "\uf06e", + "face-sad-cry": "\uf5b3", + "file-code": "\uf1c9", + "window-maximize": "\uf2d0", + "face-frown": "\uf119", + "floppy-disk": "\uf0c7", + "comment-dots": "\uf4ad", + "face-grin-squint": "\uf585", + "hand-pointer": "\uf25a", + "hand-scissors": "\uf257", + "face-grin-tears": "\uf588", + "calendar-xmark": "\uf273", + "file-video": "\uf1c8", + "file-pdf": "\uf1c1", + "comment": "\uf075", + "envelope": "\uf0e0", + "hourglass": "\uf254", + "calendar-check": "\uf274", + "hard-drive": "\uf0a0", + "face-grin-squint-tears": "\uf586", + "rectangle-list": "\uf022", + "calendar-plus": "\uf271", + "circle-left": "\uf359", + "money-bill-1": "\uf3d1", + "clock": "\uf017", + "keyboard": "\uf11c", + "closed-captioning": "\uf20a", + "images": "\uf302", + "face-grin": "\uf580", + "face-meh": "\uf11a", + "id-card": "\uf2c2", + "sun": "\uf185", + "face-laugh-wink": "\uf59c", + "circle-down": "\uf358", + "thumbs-down": "\uf165", + "chess-pawn": "\uf443", + "credit-card": "\uf09d", + "bell": "\uf0f3", + "file": "\uf15b", + "hospital": "\uf0f8", + "chess-rook": "\uf447", + "star-half": "\uf089", + "chess-king": "\uf43f", + "circle-user": "\uf2bd", + "copy": "\uf0c5", + "share-from-square": "\uf14d", + "copyright": "\uf1f9", + "map": "\uf279", + "bell-slash": "\uf1f6", + "hand-lizard": "\uf258", + "face-smile": "\uf118", + "hand-peace": "\uf25b", + "face-grin-hearts": "\uf584", + "building": "\uf1ad", + "face-grin-beam-sweat": "\uf583", + "moon": "\uf186", + "calendar": "\uf133", + "face-grin-tongue-wink": "\uf58b", + "clone": "\uf24d", + "face-angry": "\uf556", + "rectangle-xmark": "\uf410", + "paper-plane": "\uf1d8", + "life-ring": "\uf1cd", + "face-grimace": "\uf57f", + "calendar-minus": "\uf272", + "circle-xmark": "\uf057", + "thumbs-up": "\uf164", + "window-minimize": "\uf2d1", + "square-full": "\uf45c", + "note-sticky": "\uf249", + "face-sad-tear": "\uf5b4", + "hand-point-left": "\uf0a5", + }, + "brands": { + "monero": "\uf3d0", + "hooli": "\uf427", + "yelp": "\uf1e9", + "cc-visa": "\uf1f0", + "lastfm": "\uf202", + "shopware": "\uf5b5", + "creative-commons-nc": "\uf4e8", + "aws": "\uf375", + "redhat": "\uf7bc", + "yoast": "\uf2b1", + "cloudflare": "\ue07d", + "ups": "\uf7e0", + "wpexplorer": "\uf2de", + "dyalog": "\uf399", + "bity": "\uf37a", + "stackpath": "\uf842", + "buysellads": "\uf20d", + "first-order": "\uf2b0", + "modx": "\uf285", + "guilded": "\ue07e", + "vnv": "\uf40b", + "square-js": "\uf3b9", + "microsoft": "\uf3ca", + "qq": "\uf1d6", + "orcid": "\uf8d2", + "java": "\uf4e4", + "invision": "\uf7b0", + "creative-commons-pd-alt": "\uf4ed", + "centercode": "\uf380", + "glide-g": "\uf2a6", + "drupal": "\uf1a9", + "hire-a-helper": "\uf3b0", + "creative-commons-by": "\uf4e7", + "unity": "\ue049", + "whmcs": "\uf40d", + "rocketchat": "\uf3e8", + "vk": "\uf189", + "untappd": "\uf405", + "mailchimp": "\uf59e", + "css3-alt": "\uf38b", + "square-reddit": "\uf1a2", + "vimeo-v": "\uf27d", + "contao": "\uf26d", + "square-font-awesome": "\ue5ad", + "deskpro": "\uf38f", + "sistrix": "\uf3ee", + "square-instagram": "\ue055", + "battle-net": "\uf835", + "the-red-yeti": "\uf69d", + "square-hacker-news": "\uf3af", + "edge": "\uf282", + "napster": "\uf3d2", + "square-snapchat": "\uf2ad", + "google-plus-g": "\uf0d5", + "artstation": "\uf77a", + "markdown": "\uf60f", + "sourcetree": "\uf7d3", + "google-plus": "\uf2b3", + "diaspora": "\uf791", + "foursquare": "\uf180", + "stack-overflow": "\uf16c", + "github-alt": "\uf113", + "phoenix-squadron": "\uf511", + "pagelines": "\uf18c", + "algolia": "\uf36c", + "red-river": "\uf3e3", + "creative-commons-sa": "\uf4ef", + "safari": "\uf267", + "google": "\uf1a0", + "square-font-awesome-stroke": "\uf35c", + "atlassian": "\uf77b", + "linkedin-in": "\uf0e1", + "digital-ocean": "\uf391", + "nimblr": "\uf5a8", + "chromecast": "\uf838", + "evernote": "\uf839", + "hacker-news": "\uf1d4", + "creative-commons-sampling": "\uf4f0", + "adversal": "\uf36a", + "creative-commons": "\uf25e", + "watchman-monitoring": "\ue087", + "fonticons": "\uf280", + "weixin": "\uf1d7", + "shirtsinbulk": "\uf214", + "codepen": "\uf1cb", + "git-alt": "\uf841", + "lyft": "\uf3c3", + "rev": "\uf5b2", + "windows": "\uf17a", + "wizards-of-the-coast": "\uf730", + "square-viadeo": "\uf2aa", + "meetup": "\uf2e0", + "centos": "\uf789", + "adn": "\uf170", + "cloudsmith": "\uf384", + "pied-piper-alt": "\uf1a8", + "square-dribbble": "\uf397", + "codiepie": "\uf284", + "node": "\uf419", + "mix": "\uf3cb", + "steam": "\uf1b6", + "cc-apple-pay": "\uf416", + "scribd": "\uf28a", + "openid": "\uf19b", + "instalod": "\ue081", + "expeditedssl": "\uf23e", + "sellcast": "\uf2da", + "square-twitter": "\uf081", + "r-project": "\uf4f7", + "delicious": "\uf1a5", + "freebsd": "\uf3a4", + "vuejs": "\uf41f", + "accusoft": "\uf369", + "ioxhost": "\uf208", + "fonticons-fi": "\uf3a2", + "app-store": "\uf36f", + "cc-mastercard": "\uf1f1", + "itunes-note": "\uf3b5", + "golang": "\ue40f", + "kickstarter": "\uf3bb", + "grav": "\uf2d6", + "weibo": "\uf18a", + "uncharted": "\ue084", + "firstdraft": "\uf3a1", + "square-youtube": "\uf431", + "wikipedia-w": "\uf266", + "wpressr": "\uf3e4", + "angellist": "\uf209", + "galactic-republic": "\uf50c", + "nfc-directional": "\ue530", + "skype": "\uf17e", + "joget": "\uf3b7", + "fedora": "\uf798", + "stripe-s": "\uf42a", + "meta": "\ue49b", + "laravel": "\uf3bd", + "hotjar": "\uf3b1", + "bluetooth-b": "\uf294", + "sticker-mule": "\uf3f7", + "creative-commons-zero": "\uf4f3", + "hips": "\uf452", + "behance": "\uf1b4", + "reddit": "\uf1a1", + "discord": "\uf392", + "chrome": "\uf268", + "app-store-ios": "\uf370", + "cc-discover": "\uf1f2", + "wpbeginner": "\uf297", + "confluence": "\uf78d", + "mdb": "\uf8ca", + "dochub": "\uf394", + "accessible-icon": "\uf368", + "ebay": "\uf4f4", + "amazon": "\uf270", + "unsplash": "\ue07c", + "yarn": "\uf7e3", + "square-steam": "\uf1b7", + "500px": "\uf26e", + "square-vimeo": "\uf194", + "asymmetrik": "\uf372", + "font-awesome": "\uf2b4", + "gratipay": "\uf184", + "apple": "\uf179", + "hive": "\ue07f", + "gitkraken": "\uf3a6", + "keybase": "\uf4f5", + "apple-pay": "\uf415", + "padlet": "\ue4a0", + "amazon-pay": "\uf42c", + "square-github": "\uf092", + "stumbleupon": "\uf1a4", + "fedex": "\uf797", + "phoenix-framework": "\uf3dc", + "shopify": "\ue057", + "neos": "\uf612", + "hackerrank": "\uf5f7", + "researchgate": "\uf4f8", + "swift": "\uf8e1", + "angular": "\uf420", + "speakap": "\uf3f3", + "angrycreative": "\uf36e", + "y-combinator": "\uf23b", + "empire": "\uf1d1", + "envira": "\uf299", + "square-gitlab": "\ue5ae", + "studiovinari": "\uf3f8", + "pied-piper": "\uf2ae", + "wordpress": "\uf19a", + "product-hunt": "\uf288", + "firefox": "\uf269", + "linode": "\uf2b8", + "goodreads": "\uf3a8", + "square-odnoklassniki": "\uf264", + "jsfiddle": "\uf1cc", + "sith": "\uf512", + "themeisle": "\uf2b2", + "page4": "\uf3d7", + "hashnode": "\ue499", + "react": "\uf41b", + "cc-paypal": "\uf1f4", + "squarespace": "\uf5be", + "cc-stripe": "\uf1f5", + "creative-commons-share": "\uf4f2", + "bitcoin": "\uf379", + "keycdn": "\uf3ba", + "opera": "\uf26a", + "itch-io": "\uf83a", + "umbraco": "\uf8e8", + "galactic-senate": "\uf50d", + "ubuntu": "\uf7df", + "draft2digital": "\uf396", + "stripe": "\uf429", + "houzz": "\uf27c", + "gg": "\uf260", + "dhl": "\uf790", + "square-pinterest": "\uf0d3", + "xing": "\uf168", + "blackberry": "\uf37b", + "creative-commons-pd": "\uf4ec", + "playstation": "\uf3df", + "quinscape": "\uf459", + "less": "\uf41d", + "blogger-b": "\uf37d", + "opencart": "\uf23d", + "vine": "\uf1ca", + "paypal": "\uf1ed", + "gitlab": "\uf296", + "typo3": "\uf42b", + "reddit-alien": "\uf281", + "yahoo": "\uf19e", + "dailymotion": "\ue052", + "affiliatetheme": "\uf36b", + "pied-piper-pp": "\uf1a7", + "bootstrap": "\uf836", + "odnoklassniki": "\uf263", + "nfc-symbol": "\ue531", + "ethereum": "\uf42e", + "speaker-deck": "\uf83c", + "creative-commons-nc-eu": "\uf4e9", + "patreon": "\uf3d9", + "avianex": "\uf374", + "ello": "\uf5f1", + "gofore": "\uf3a7", + "bimobject": "\uf378", + "facebook-f": "\uf39e", + "square-google-plus": "\uf0d4", + "mandalorian": "\uf50f", + "first-order-alt": "\uf50a", + "osi": "\uf41a", + "google-wallet": "\uf1ee", + "d-and-d-beyond": "\uf6ca", + "periscope": "\uf3da", + "fulcrum": "\uf50b", + "cloudscale": "\uf383", + "forumbee": "\uf211", + "mizuni": "\uf3cc", + "schlix": "\uf3ea", + "square-xing": "\uf169", + "bandcamp": "\uf2d5", + "wpforms": "\uf298", + "cloudversify": "\uf385", + "usps": "\uf7e1", + "megaport": "\uf5a3", + "magento": "\uf3c4", + "spotify": "\uf1bc", + "optin-monster": "\uf23c", + "fly": "\uf417", + "aviato": "\uf421", + "itunes": "\uf3b4", + "cuttlefish": "\uf38c", + "blogger": "\uf37c", + "flickr": "\uf16e", + "viber": "\uf409", + "soundcloud": "\uf1be", + "digg": "\uf1a6", + "tencent-weibo": "\uf1d5", + "symfony": "\uf83d", + "maxcdn": "\uf136", + "etsy": "\uf2d7", + "facebook-messenger": "\uf39f", + "audible": "\uf373", + "think-peaks": "\uf731", + "bilibili": "\ue3d9", + "erlang": "\uf39d", + "cotton-bureau": "\uf89e", + "dashcube": "\uf210", + "42-group": "\ue080", + "stack-exchange": "\uf18d", + "elementor": "\uf430", + "square-pied-piper": "\ue01e", + "creative-commons-nd": "\uf4eb", + "palfed": "\uf3d8", + "superpowers": "\uf2dd", + "resolving": "\uf3e7", + "xbox": "\uf412", + "searchengin": "\uf3eb", + "tiktok": "\ue07b", + "square-facebook": "\uf082", + "renren": "\uf18b", + "linux": "\uf17c", + "glide": "\uf2a5", + "linkedin": "\uf08c", + "hubspot": "\uf3b2", + "deploydog": "\uf38e", + "twitch": "\uf1e8", + "ravelry": "\uf2d9", + "mixer": "\ue056", + "square-lastfm": "\uf203", + "vimeo": "\uf40a", + "mendeley": "\uf7b3", + "uniregistry": "\uf404", + "figma": "\uf799", + "creative-commons-remix": "\uf4ee", + "cc-amazon-pay": "\uf42d", + "dropbox": "\uf16b", + "instagram": "\uf16d", + "cmplid": "\ue360", + "facebook": "\uf09a", + "gripfire": "\uf3ac", + "jedi-order": "\uf50e", + "uikit": "\uf403", + "fort-awesome-alt": "\uf3a3", + "phabricator": "\uf3db", + "ussunnah": "\uf407", + "earlybirds": "\uf39a", + "trade-federation": "\uf513", + "autoprefixer": "\uf41c", + "whatsapp": "\uf232", + "slideshare": "\uf1e7", + "google-play": "\uf3ab", + "viadeo": "\uf2a9", + "line": "\uf3c0", + "google-drive": "\uf3aa", + "servicestack": "\uf3ec", + "simplybuilt": "\uf215", + "bitbucket": "\uf171", + "imdb": "\uf2d8", + "deezer": "\ue077", + "raspberry-pi": "\uf7bb", + "jira": "\uf7b1", + "docker": "\uf395", + "screenpal": "\ue570", + "bluetooth": "\uf293", + "gitter": "\uf426", + "d-and-d": "\uf38d", + "microblog": "\ue01a", + "cc-diners-club": "\uf24c", + "gg-circle": "\uf261", + "pied-piper-hat": "\uf4e5", + "kickstarter-k": "\uf3bc", + "yandex": "\uf413", + "readme": "\uf4d5", + "html5": "\uf13b", + "sellsy": "\uf213", + "sass": "\uf41e", + "wirsindhandwerk": "\ue2d0", + "buromobelexperte": "\uf37f", + "salesforce": "\uf83b", + "octopus-deploy": "\ue082", + "medapps": "\uf3c6", + "ns8": "\uf3d5", + "pinterest-p": "\uf231", + "apper": "\uf371", + "fort-awesome": "\uf286", + "waze": "\uf83f", + "cc-jcb": "\uf24b", + "snapchat": "\uf2ab", + "fantasy-flight-games": "\uf6dc", + "rust": "\ue07a", + "wix": "\uf5cf", + "square-behance": "\uf1b5", + "supple": "\uf3f9", + "rebel": "\uf1d0", + "css3": "\uf13c", + "staylinked": "\uf3f5", + "kaggle": "\uf5fa", + "space-awesome": "\ue5ac", + "deviantart": "\uf1bd", + "cpanel": "\uf388", + "goodreads-g": "\uf3a9", + "square-git": "\uf1d2", + "square-tumblr": "\uf174", + "trello": "\uf181", + "creative-commons-nc-jp": "\uf4ea", + "get-pocket": "\uf265", + "perbyte": "\ue083", + "grunt": "\uf3ad", + "weebly": "\uf5cc", + "connectdevelop": "\uf20e", + "leanpub": "\uf212", + "black-tie": "\uf27e", + "themeco": "\uf5c6", + "python": "\uf3e2", + "android": "\uf17b", + "bots": "\ue340", + "free-code-camp": "\uf2c5", + "hornbill": "\uf592", + "js": "\uf3b8", + "ideal": "\ue013", + "git": "\uf1d3", + "dev": "\uf6cc", + "sketch": "\uf7c6", + "yandex-international": "\uf414", + "cc-amex": "\uf1f3", + "uber": "\uf402", + "github": "\uf09b", + "php": "\uf457", + "alipay": "\uf642", + "youtube": "\uf167", + "skyatlas": "\uf216", + "firefox-browser": "\ue007", + "replyd": "\uf3e6", + "suse": "\uf7d6", + "jenkins": "\uf3b6", + "twitter": "\uf099", + "rockrms": "\uf3e9", + "pinterest": "\uf0d2", + "buffer": "\uf837", + "npm": "\uf3d4", + "yammer": "\uf840", + "btc": "\uf15a", + "dribbble": "\uf17d", + "stumbleupon-circle": "\uf1a3", + "internet-explorer": "\uf26b", + "stubber": "\ue5c7", + "telegram": "\uf2c6", + "old-republic": "\uf510", + "odysee": "\ue5c6", + "square-whatsapp": "\uf40c", + "node-js": "\uf3d3", + "edge-legacy": "\ue078", + "slack": "\uf198", + "medrt": "\uf3c8", + "usb": "\uf287", + "tumblr": "\uf173", + "vaadin": "\uf408", + "quora": "\uf2c4", + "reacteurope": "\uf75d", + "medium": "\uf23a", + "amilia": "\uf36d", + "mixcloud": "\uf289", + "flipboard": "\uf44d", + "viacoin": "\uf237", + "critical-role": "\uf6c9", + "sitrox": "\ue44a", + "discourse": "\uf393", + "joomla": "\uf1aa", + "mastodon": "\uf4f6", + "airbnb": "\uf834", + "wolf-pack-battalion": "\uf514", + "buy-n-large": "\uf8a6", + "gulp": "\uf3ae", + "creative-commons-sampling-plus": "\uf4f1", + "strava": "\uf428", + "ember": "\uf423", + "canadian-maple-leaf": "\uf785", + "teamspeak": "\uf4f9", + "pushed": "\uf3e1", + "wordpress-simple": "\uf411", + "nutritionix": "\uf3d6", + "wodu": "\ue088", + "google-pay": "\ue079", + "intercom": "\uf7af", + "zhihu": "\uf63f", + "korvue": "\uf42f", + "pix": "\ue43a", + "steam-symbol": "\uf3f6", + }, + "solid": { + "0": "\u0030", + "1": "\u0031", + "2": "\u0032", + "3": "\u0033", + "4": "\u0034", + "5": "\u0035", + "6": "\u0036", + "7": "\u0037", + "8": "\u0038", + "9": "\u0039", + "fill-drip": "\uf576", + "arrows-to-circle": "\ue4bd", + "circle-chevron-right": "\uf138", + "at": "\u0040", + "trash-can": "\uf2ed", + "text-height": "\uf034", + "user-xmark": "\uf235", + "stethoscope": "\uf0f1", + "message": "\uf27a", + "info": "\uf129", + "down-left-and-up-right-to-center": "\uf422", + "explosion": "\ue4e9", + "file-lines": "\uf15c", + "wave-square": "\uf83e", + "ring": "\uf70b", + "building-un": "\ue4d9", + "dice-three": "\uf527", + "calendar-days": "\uf073", + "anchor-circle-check": "\ue4aa", + "building-circle-arrow-right": "\ue4d1", + "volleyball": "\uf45f", + "arrows-up-to-line": "\ue4c2", + "sort-down": "\uf0dd", + "circle-minus": "\uf056", + "door-open": "\uf52b", + "right-from-bracket": "\uf2f5", + "atom": "\uf5d2", + "soap": "\ue06e", + "icons": "\uf86d", + "microphone-lines-slash": "\uf539", + "bridge-circle-check": "\ue4c9", + "pump-medical": "\ue06a", + "fingerprint": "\uf577", + "hand-point-right": "\uf0a4", + "magnifying-glass-location": "\uf689", + "forward-step": "\uf051", + "face-smile-beam": "\uf5b8", + "flag-checkered": "\uf11e", + "football": "\uf44e", + "school-circle-exclamation": "\ue56c", + "crop": "\uf125", + "angles-down": "\uf103", + "users-rectangle": "\ue594", + "people-roof": "\ue537", + "people-line": "\ue534", + "beer-mug-empty": "\uf0fc", + "diagram-predecessor": "\ue477", + "arrow-up-long": "\uf176", + "fire-flame-simple": "\uf46a", + "person": "\uf183", + "laptop": "\uf109", + "file-csv": "\uf6dd", + "menorah": "\uf676", + "truck-plane": "\ue58f", + "record-vinyl": "\uf8d9", + "face-grin-stars": "\uf587", + "bong": "\uf55c", + "spaghetti-monster-flying": "\uf67b", + "arrow-down-up-across-line": "\ue4af", + "spoon": "\uf2e5", + "jar-wheat": "\ue517", + "envelopes-bulk": "\uf674", + "file-circle-exclamation": "\ue4eb", + "circle-h": "\uf47e", + "pager": "\uf815", + "address-book": "\uf2b9", + "strikethrough": "\uf0cc", + "k": "\u004b", + "landmark-flag": "\ue51c", + "pencil": "\uf303", + "backward": "\uf04a", + "caret-right": "\uf0da", + "comments": "\uf086", + "paste": "\uf0ea", + "code-pull-request": "\ue13c", + "clipboard-list": "\uf46d", + "truck-ramp-box": "\uf4de", + "user-check": "\uf4fc", + "vial-virus": "\ue597", + "sheet-plastic": "\ue571", + "blog": "\uf781", + "user-ninja": "\uf504", + "person-arrow-up-from-line": "\ue539", + "scroll-torah": "\uf6a0", + "broom-ball": "\uf458", + "toggle-off": "\uf204", + "box-archive": "\uf187", + "person-drowning": "\ue545", + "arrow-down-9-1": "\uf886", + "face-grin-tongue-squint": "\uf58a", + "spray-can": "\uf5bd", + "truck-monster": "\uf63b", + "w": "\u0057", + "earth-africa": "\uf57c", + "rainbow": "\uf75b", + "circle-notch": "\uf1ce", + "tablet-screen-button": "\uf3fa", + "paw": "\uf1b0", + "cloud": "\uf0c2", + "trowel-bricks": "\ue58a", + "face-flushed": "\uf579", + "hospital-user": "\uf80d", + "tent-arrow-left-right": "\ue57f", + "gavel": "\uf0e3", + "binoculars": "\uf1e5", + "microphone-slash": "\uf131", + "box-tissue": "\ue05b", + "motorcycle": "\uf21c", + "bell-concierge": "\uf562", + "pen-ruler": "\uf5ae", + "people-arrows": "\ue068", + "mars-and-venus-burst": "\ue523", + "square-caret-right": "\uf152", + "scissors": "\uf0c4", + "sun-plant-wilt": "\ue57a", + "toilets-portable": "\ue584", + "hockey-puck": "\uf453", + "table": "\uf0ce", + "magnifying-glass-arrow-right": "\ue521", + "tachograph-digital": "\uf566", + "users-slash": "\ue073", + "clover": "\ue139", + "reply": "\uf3e5", + "star-and-crescent": "\uf699", + "house-fire": "\ue50c", + "square-minus": "\uf146", + "helicopter": "\uf533", + "compass": "\uf14e", + "square-caret-down": "\uf150", + "file-circle-question": "\ue4ef", + "laptop-code": "\uf5fc", + "swatchbook": "\uf5c3", + "prescription-bottle": "\uf485", + "bars": "\uf0c9", + "people-group": "\ue533", + "hourglass-end": "\uf253", + "heart-crack": "\uf7a9", + "square-up-right": "\uf360", + "face-kiss-beam": "\uf597", + "film": "\uf008", + "ruler-horizontal": "\uf547", + "people-robbery": "\ue536", + "lightbulb": "\uf0eb", + "caret-left": "\uf0d9", + "circle-exclamation": "\uf06a", + "school-circle-xmark": "\ue56d", + "arrow-right-from-bracket": "\uf08b", + "circle-chevron-down": "\uf13a", + "unlock-keyhole": "\uf13e", + "cloud-showers-heavy": "\uf740", + "headphones-simple": "\uf58f", + "sitemap": "\uf0e8", + "circle-dollar-to-slot": "\uf4b9", + "memory": "\uf538", + "road-spikes": "\ue568", + "fire-burner": "\ue4f1", + "flag": "\uf024", + "hanukiah": "\uf6e6", + "feather": "\uf52d", + "volume-low": "\uf027", + "comment-slash": "\uf4b3", + "cloud-sun-rain": "\uf743", + "compress": "\uf066", + "wheat-awn": "\ue2cd", + "ankh": "\uf644", + "hands-holding-child": "\ue4fa", + "asterisk": "\u002a", + "square-check": "\uf14a", + "peseta-sign": "\ue221", + "heading": "\uf1dc", + "ghost": "\uf6e2", + "list": "\uf03a", + "square-phone-flip": "\uf87b", + "cart-plus": "\uf217", + "gamepad": "\uf11b", + "circle-dot": "\uf192", + "face-dizzy": "\uf567", + "egg": "\uf7fb", + "house-medical-circle-xmark": "\ue513", + "campground": "\uf6bb", + "folder-plus": "\uf65e", + "futbol": "\uf1e3", + "paintbrush": "\uf1fc", + "lock": "\uf023", + "gas-pump": "\uf52f", + "hot-tub-person": "\uf593", + "map-location": "\uf59f", + "house-flood-water": "\ue50e", + "tree": "\uf1bb", + "bridge-lock": "\ue4cc", + "sack-dollar": "\uf81d", + "pen-to-square": "\uf044", + "car-side": "\uf5e4", + "share-nodes": "\uf1e0", + "heart-circle-minus": "\ue4ff", + "hourglass-half": "\uf252", + "microscope": "\uf610", + "sink": "\ue06d", + "bag-shopping": "\uf290", + "arrow-down-z-a": "\uf881", + "mitten": "\uf7b5", + "person-rays": "\ue54d", + "users": "\uf0c0", + "eye-slash": "\uf070", + "flask-vial": "\ue4f3", + "hand": "\uf256", + "om": "\uf679", + "worm": "\ue599", + "house-circle-xmark": "\ue50b", + "plug": "\uf1e6", + "chevron-up": "\uf077", + "hand-spock": "\uf259", + "stopwatch": "\uf2f2", + "face-kiss": "\uf596", + "bridge-circle-xmark": "\ue4cb", + "face-grin-tongue": "\uf589", + "chess-bishop": "\uf43a", + "face-grin-wink": "\uf58c", + "ear-deaf": "\uf2a4", + "road-circle-check": "\ue564", + "dice-five": "\uf523", + "square-rss": "\uf143", + "land-mine-on": "\ue51b", + "i-cursor": "\uf246", + "stamp": "\uf5bf", + "stairs": "\ue289", + "i": "\u0049", + "hryvnia-sign": "\uf6f2", + "pills": "\uf484", + "face-grin-wide": "\uf581", + "tooth": "\uf5c9", + "v": "\u0056", + "bangladeshi-taka-sign": "\ue2e6", + "bicycle": "\uf206", + "staff-snake": "\ue579", + "head-side-cough-slash": "\ue062", + "truck-medical": "\uf0f9", + "wheat-awn-circle-exclamation": "\ue598", + "snowman": "\uf7d0", + "mortar-pestle": "\uf5a7", + "road-barrier": "\ue562", + "school": "\uf549", + "igloo": "\uf7ae", + "joint": "\uf595", + "angle-right": "\uf105", + "horse": "\uf6f0", + "q": "\u0051", + "g": "\u0047", + "notes-medical": "\uf481", + "temperature-half": "\uf2c9", + "dong-sign": "\ue169", + "capsules": "\uf46b", + "poo-storm": "\uf75a", + "face-frown-open": "\uf57a", + "hand-point-up": "\uf0a6", + "money-bill": "\uf0d6", + "bookmark": "\uf02e", + "align-justify": "\uf039", + "umbrella-beach": "\uf5ca", + "helmet-un": "\ue503", + "bullseye": "\uf140", + "bacon": "\uf7e5", + "hand-point-down": "\uf0a7", + "arrow-up-from-bracket": "\ue09a", + "folder": "\uf07b", + "file-waveform": "\uf478", + "radiation": "\uf7b9", + "chart-simple": "\ue473", + "mars-stroke": "\uf229", + "vial": "\uf492", + "gauge": "\uf624", + "wand-magic-sparkles": "\ue2ca", + "e": "\u0045", + "pen-clip": "\uf305", + "bridge-circle-exclamation": "\ue4ca", + "user": "\uf007", + "school-circle-check": "\ue56b", + "dumpster": "\uf793", + "van-shuttle": "\uf5b6", + "building-user": "\ue4da", + "square-caret-left": "\uf191", + "highlighter": "\uf591", + "key": "\uf084", + "bullhorn": "\uf0a1", + "globe": "\uf0ac", + "synagogue": "\uf69b", + "person-half-dress": "\ue548", + "road-bridge": "\ue563", + "location-arrow": "\uf124", + "c": "\u0043", + "tablet-button": "\uf10a", + "building-lock": "\ue4d6", + "pizza-slice": "\uf818", + "money-bill-wave": "\uf53a", + "chart-area": "\uf1fe", + "house-flag": "\ue50d", + "person-circle-minus": "\ue540", + "ban": "\uf05e", + "camera-rotate": "\ue0d8", + "spray-can-sparkles": "\uf5d0", + "star": "\uf005", + "repeat": "\uf363", + "cross": "\uf654", + "box": "\uf466", + "venus-mars": "\uf228", + "arrow-pointer": "\uf245", + "maximize": "\uf31e", + "charging-station": "\uf5e7", + "shapes": "\uf61f", + "shuffle": "\uf074", + "person-running": "\uf70c", + "mobile-retro": "\ue527", + "grip-lines-vertical": "\uf7a5", + "spider": "\uf717", + "hands-bound": "\ue4f9", + "file-invoice-dollar": "\uf571", + "plane-circle-exclamation": "\ue556", + "x-ray": "\uf497", + "spell-check": "\uf891", + "slash": "\uf715", + "computer-mouse": "\uf8cc", + "arrow-right-to-bracket": "\uf090", + "shop-slash": "\ue070", + "server": "\uf233", + "virus-covid-slash": "\ue4a9", + "shop-lock": "\ue4a5", + "hourglass-start": "\uf251", + "blender-phone": "\uf6b6", + "building-wheat": "\ue4db", + "person-breastfeeding": "\ue53a", + "right-to-bracket": "\uf2f6", + "venus": "\uf221", + "passport": "\uf5ab", + "heart-pulse": "\uf21e", + "people-carry-box": "\uf4ce", + "temperature-high": "\uf769", + "microchip": "\uf2db", + "crown": "\uf521", + "weight-hanging": "\uf5cd", + "xmarks-lines": "\ue59a", + "file-prescription": "\uf572", + "weight-scale": "\uf496", + "user-group": "\uf500", + "arrow-up-a-z": "\uf15e", + "chess-knight": "\uf441", + "face-laugh-squint": "\uf59b", + "wheelchair": "\uf193", + "circle-arrow-up": "\uf0aa", + "toggle-on": "\uf205", + "person-walking": "\uf554", + "l": "\u004c", + "fire": "\uf06d", + "bed-pulse": "\uf487", + "shuttle-space": "\uf197", + "face-laugh": "\uf599", + "folder-open": "\uf07c", + "heart-circle-plus": "\ue500", + "code-fork": "\ue13b", + "city": "\uf64f", + "microphone-lines": "\uf3c9", + "pepper-hot": "\uf816", + "unlock": "\uf09c", + "colon-sign": "\ue140", + "headset": "\uf590", + "store-slash": "\ue071", + "road-circle-xmark": "\ue566", + "user-minus": "\uf503", + "mars-stroke-up": "\uf22a", + "champagne-glasses": "\uf79f", + "clipboard": "\uf328", + "house-circle-exclamation": "\ue50a", + "file-arrow-up": "\uf574", + "wifi": "\uf1eb", + "bath": "\uf2cd", + "underline": "\uf0cd", + "user-pen": "\uf4ff", + "signature": "\uf5b7", + "stroopwafel": "\uf551", + "bold": "\uf032", + "anchor-lock": "\ue4ad", + "building-ngo": "\ue4d7", + "manat-sign": "\ue1d5", + "not-equal": "\uf53e", + "border-top-left": "\uf853", + "map-location-dot": "\uf5a0", + "jedi": "\uf669", + "square-poll-vertical": "\uf681", + "mug-hot": "\uf7b6", + "car-battery": "\uf5df", + "gift": "\uf06b", + "dice-two": "\uf528", + "chess-queen": "\uf445", + "glasses": "\uf530", + "chess-board": "\uf43c", + "building-circle-check": "\ue4d2", + "person-chalkboard": "\ue53d", + "mars-stroke-right": "\uf22b", + "hand-back-fist": "\uf255", + "square-caret-up": "\uf151", + "cloud-showers-water": "\ue4e4", + "chart-bar": "\uf080", + "hands-bubbles": "\ue05e", + "less-than-equal": "\uf537", + "train": "\uf238", + "eye-low-vision": "\uf2a8", + "crow": "\uf520", + "sailboat": "\ue445", + "window-restore": "\uf2d2", + "square-plus": "\uf0fe", + "torii-gate": "\uf6a1", + "frog": "\uf52e", + "bucket": "\ue4cf", + "image": "\uf03e", + "microphone": "\uf130", + "cow": "\uf6c8", + "caret-up": "\uf0d8", + "screwdriver": "\uf54a", + "folder-closed": "\ue185", + "house-tsunami": "\ue515", + "square-nfi": "\ue576", + "arrow-up-from-ground-water": "\ue4b5", + "martini-glass": "\uf57b", + "rotate-left": "\uf2ea", + "table-columns": "\uf0db", + "lemon": "\uf094", + "head-side-mask": "\ue063", + "handshake": "\uf2b5", + "gem": "\uf3a5", + "dolly": "\uf472", + "smoking": "\uf48d", + "minimize": "\uf78c", + "monument": "\uf5a6", + "snowplow": "\uf7d2", + "angles-right": "\uf101", + "cannabis": "\uf55f", + "circle-play": "\uf144", + "tablets": "\uf490", + "ethernet": "\uf796", + "euro-sign": "\uf153", + "chair": "\uf6c0", + "circle-check": "\uf058", + "circle-stop": "\uf28d", + "compass-drafting": "\uf568", + "plate-wheat": "\ue55a", + "icicles": "\uf7ad", + "person-shelter": "\ue54f", + "neuter": "\uf22c", + "id-badge": "\uf2c1", + "marker": "\uf5a1", + "face-laugh-beam": "\uf59a", + "helicopter-symbol": "\ue502", + "universal-access": "\uf29a", + "circle-chevron-up": "\uf139", + "lari-sign": "\ue1c8", + "volcano": "\uf770", + "person-walking-dashed-line-arrow-right": "\ue553", + "sterling-sign": "\uf154", + "viruses": "\ue076", + "square-person-confined": "\ue577", + "user-tie": "\uf508", + "arrow-down-long": "\uf175", + "tent-arrow-down-to-line": "\ue57e", + "certificate": "\uf0a3", + "reply-all": "\uf122", + "suitcase": "\uf0f2", + "person-skating": "\uf7c5", + "filter-circle-dollar": "\uf662", + "camera-retro": "\uf083", + "circle-arrow-down": "\uf0ab", + "file-import": "\uf56f", + "square-arrow-up-right": "\uf14c", + "box-open": "\uf49e", + "scroll": "\uf70e", + "spa": "\uf5bb", + "location-pin-lock": "\ue51f", + "pause": "\uf04c", + "hill-avalanche": "\ue507", + "temperature-empty": "\uf2cb", + "bomb": "\uf1e2", + "registered": "\uf25d", + "address-card": "\uf2bb", + "scale-unbalanced-flip": "\uf516", + "subscript": "\uf12c", + "diamond-turn-right": "\uf5eb", + "burst": "\ue4dc", + "house-laptop": "\ue066", + "face-tired": "\uf5c8", + "money-bills": "\ue1f3", + "smog": "\uf75f", + "crutch": "\uf7f7", + "font-awesome": "\uf2b4", + "cloud-arrow-up": "\uf0ee", + "palette": "\uf53f", + "arrows-turn-right": "\ue4c0", + "vest": "\ue085", + "ferry": "\ue4ea", + "arrows-down-to-people": "\ue4b9", + "seedling": "\uf4d8", + "left-right": "\uf337", + "boxes-packing": "\ue4c7", + "circle-arrow-left": "\uf0a8", + "group-arrows-rotate": "\ue4f6", + "bowl-food": "\ue4c6", + "candy-cane": "\uf786", + "arrow-down-wide-short": "\uf160", + "cloud-bolt": "\uf76c", + "text-slash": "\uf87d", + "face-smile-wink": "\uf4da", + "file-word": "\uf1c2", + "file-powerpoint": "\uf1c4", + "arrows-left-right": "\uf07e", + "house-lock": "\ue510", + "cloud-arrow-down": "\uf0ed", + "children": "\ue4e1", + "chalkboard": "\uf51b", + "user-large-slash": "\uf4fa", + "envelope-open": "\uf2b6", + "handshake-simple-slash": "\ue05f", + "mattress-pillow": "\ue525", + "guarani-sign": "\ue19a", + "arrows-rotate": "\uf021", + "fire-extinguisher": "\uf134", + "cruzeiro-sign": "\ue152", + "greater-than-equal": "\uf532", + "shield-halved": "\uf3ed", + "book-atlas": "\uf558", + "virus": "\ue074", + "envelope-circle-check": "\ue4e8", + "layer-group": "\uf5fd", + "arrows-to-dot": "\ue4be", + "archway": "\uf557", + "heart-circle-check": "\ue4fd", + "house-chimney-crack": "\uf6f1", + "file-zipper": "\uf1c6", + "square": "\uf0c8", + "martini-glass-empty": "\uf000", + "couch": "\uf4b8", + "cedi-sign": "\ue0df", + "italic": "\uf033", + "church": "\uf51d", + "comments-dollar": "\uf653", + "democrat": "\uf747", + "z": "\u005a", + "person-skiing": "\uf7c9", + "road-lock": "\ue567", + "a": "\u0041", + "temperature-arrow-down": "\ue03f", + "feather-pointed": "\uf56b", + "p": "\u0050", + "snowflake": "\uf2dc", + "newspaper": "\uf1ea", + "rectangle-ad": "\uf641", + "circle-arrow-right": "\uf0a9", + "filter-circle-xmark": "\ue17b", + "locust": "\ue520", + "sort": "\uf0dc", + "list-ol": "\uf0cb", + "person-dress-burst": "\ue544", + "money-check-dollar": "\uf53d", + "vector-square": "\uf5cb", + "bread-slice": "\uf7ec", + "language": "\uf1ab", + "face-kiss-wink-heart": "\uf598", + "filter": "\uf0b0", + "question": "\u003f", + "file-signature": "\uf573", + "up-down-left-right": "\uf0b2", + "house-chimney-user": "\ue065", + "hand-holding-heart": "\uf4be", + "puzzle-piece": "\uf12e", + "money-check": "\uf53c", + "star-half-stroke": "\uf5c0", + "code": "\uf121", + "whiskey-glass": "\uf7a0", + "building-circle-exclamation": "\ue4d3", + "magnifying-glass-chart": "\ue522", + "arrow-up-right-from-square": "\uf08e", + "cubes-stacked": "\ue4e6", + "won-sign": "\uf159", + "virus-covid": "\ue4a8", + "austral-sign": "\ue0a9", + "f": "\u0046", + "leaf": "\uf06c", + "road": "\uf018", + "taxi": "\uf1ba", + "person-circle-plus": "\ue541", + "chart-pie": "\uf200", + "bolt-lightning": "\ue0b7", + "sack-xmark": "\ue56a", + "file-excel": "\uf1c3", + "file-contract": "\uf56c", + "fish-fins": "\ue4f2", + "building-flag": "\ue4d5", + "face-grin-beam": "\uf582", + "object-ungroup": "\uf248", + "poop": "\uf619", + "location-pin": "\uf041", + "kaaba": "\uf66b", + "toilet-paper": "\uf71e", + "helmet-safety": "\uf807", + "eject": "\uf052", + "circle-right": "\uf35a", + "plane-circle-check": "\ue555", + "face-rolling-eyes": "\uf5a5", + "object-group": "\uf247", + "chart-line": "\uf201", + "mask-ventilator": "\ue524", + "arrow-right": "\uf061", + "signs-post": "\uf277", + "cash-register": "\uf788", + "person-circle-question": "\ue542", + "h": "\u0048", + "tarp": "\ue57b", + "screwdriver-wrench": "\uf7d9", + "arrows-to-eye": "\ue4bf", + "plug-circle-bolt": "\ue55b", + "heart": "\uf004", + "mars-and-venus": "\uf224", + "house-user": "\ue1b0", + "dumpster-fire": "\uf794", + "house-crack": "\ue3b1", + "martini-glass-citrus": "\uf561", + "face-surprise": "\uf5c2", + "bottle-water": "\ue4c5", + "circle-pause": "\uf28b", + "toilet-paper-slash": "\ue072", + "apple-whole": "\uf5d1", + "kitchen-set": "\ue51a", + "r": "\u0052", + "temperature-quarter": "\uf2ca", + "cube": "\uf1b2", + "bitcoin-sign": "\ue0b4", + "shield-dog": "\ue573", + "solar-panel": "\uf5ba", + "lock-open": "\uf3c1", + "elevator": "\ue16d", + "money-bill-transfer": "\ue528", + "money-bill-trend-up": "\ue529", + "house-flood-water-circle-arrow-right": "\ue50f", + "square-poll-horizontal": "\uf682", + "circle": "\uf111", + "backward-fast": "\uf049", + "recycle": "\uf1b8", + "user-astronaut": "\uf4fb", + "plane-slash": "\ue069", + "trademark": "\uf25c", + "basketball": "\uf434", + "satellite-dish": "\uf7c0", + "circle-up": "\uf35b", + "mobile-screen-button": "\uf3cd", + "volume-high": "\uf028", + "users-rays": "\ue593", + "wallet": "\uf555", + "clipboard-check": "\uf46c", + "file-audio": "\uf1c7", + "burger": "\uf805", + "wrench": "\uf0ad", + "bugs": "\ue4d0", + "rupee-sign": "\uf156", + "file-image": "\uf1c5", + "circle-question": "\uf059", + "plane-departure": "\uf5b0", + "handshake-slash": "\ue060", + "book-bookmark": "\ue0bb", + "code-branch": "\uf126", + "hat-cowboy": "\uf8c0", + "bridge": "\ue4c8", + "phone-flip": "\uf879", + "truck-front": "\ue2b7", + "cat": "\uf6be", + "anchor-circle-exclamation": "\ue4ab", + "truck-field": "\ue58d", + "route": "\uf4d7", + "clipboard-question": "\ue4e3", + "panorama": "\ue209", + "comment-medical": "\uf7f5", + "teeth-open": "\uf62f", + "file-circle-minus": "\ue4ed", + "tags": "\uf02c", + "wine-glass": "\uf4e3", + "forward-fast": "\uf050", + "face-meh-blank": "\uf5a4", + "square-parking": "\uf540", + "house-signal": "\ue012", + "bars-progress": "\uf828", + "faucet-drip": "\ue006", + "cart-flatbed": "\uf474", + "ban-smoking": "\uf54d", + "terminal": "\uf120", + "mobile-button": "\uf10b", + "house-medical-flag": "\ue514", + "basket-shopping": "\uf291", + "tape": "\uf4db", + "bus-simple": "\uf55e", + "eye": "\uf06e", + "face-sad-cry": "\uf5b3", + "audio-description": "\uf29e", + "person-military-to-person": "\ue54c", + "file-shield": "\ue4f0", + "user-slash": "\uf506", + "pen": "\uf304", + "tower-observation": "\ue586", + "file-code": "\uf1c9", + "signal": "\uf012", + "bus": "\uf207", + "heart-circle-xmark": "\ue501", + "house-chimney": "\ue3af", + "window-maximize": "\uf2d0", + "face-frown": "\uf119", + "prescription": "\uf5b1", + "shop": "\uf54f", + "floppy-disk": "\uf0c7", + "vihara": "\uf6a7", + "scale-unbalanced": "\uf515", + "sort-up": "\uf0de", + "comment-dots": "\uf4ad", + "plant-wilt": "\ue5aa", + "diamond": "\uf219", + "face-grin-squint": "\uf585", + "hand-holding-dollar": "\uf4c0", + "bacterium": "\ue05a", + "hand-pointer": "\uf25a", + "drum-steelpan": "\uf56a", + "hand-scissors": "\uf257", + "hands-praying": "\uf684", + "arrow-rotate-right": "\uf01e", + "biohazard": "\uf780", + "location-crosshairs": "\uf601", + "mars-double": "\uf227", + "child-dress": "\ue59c", + "users-between-lines": "\ue591", + "lungs-virus": "\ue067", + "face-grin-tears": "\uf588", + "phone": "\uf095", + "calendar-xmark": "\uf273", + "child-reaching": "\ue59d", + "head-side-virus": "\ue064", + "user-gear": "\uf4fe", + "arrow-up-1-9": "\uf163", + "door-closed": "\uf52a", + "shield-virus": "\ue06c", + "dice-six": "\uf526", + "mosquito-net": "\ue52c", + "bridge-water": "\ue4ce", + "person-booth": "\uf756", + "text-width": "\uf035", + "hat-wizard": "\uf6e8", + "pen-fancy": "\uf5ac", + "person-digging": "\uf85e", + "trash": "\uf1f8", + "gauge-simple": "\uf629", + "book-medical": "\uf7e6", + "poo": "\uf2fe", + "quote-right": "\uf10e", + "shirt": "\uf553", + "cubes": "\uf1b3", + "divide": "\uf529", + "tenge-sign": "\uf7d7", + "headphones": "\uf025", + "hands-holding": "\uf4c2", + "hands-clapping": "\ue1a8", + "republican": "\uf75e", + "arrow-left": "\uf060", + "person-circle-xmark": "\ue543", + "ruler": "\uf545", + "align-left": "\uf036", + "dice-d6": "\uf6d1", + "restroom": "\uf7bd", + "j": "\u004a", + "users-viewfinder": "\ue595", + "file-video": "\uf1c8", + "up-right-from-square": "\uf35d", + "table-cells": "\uf00a", + "file-pdf": "\uf1c1", + "book-bible": "\uf647", + "o": "\u004f", + "suitcase-medical": "\uf0fa", + "user-secret": "\uf21b", + "otter": "\uf700", + "person-dress": "\uf182", + "comment-dollar": "\uf651", + "business-time": "\uf64a", + "table-cells-large": "\uf009", + "book-tanakh": "\uf827", + "phone-volume": "\uf2a0", + "hat-cowboy-side": "\uf8c1", + "clipboard-user": "\uf7f3", + "child": "\uf1ae", + "lira-sign": "\uf195", + "satellite": "\uf7bf", + "plane-lock": "\ue558", + "tag": "\uf02b", + "comment": "\uf075", + "cake-candles": "\uf1fd", + "envelope": "\uf0e0", + "angles-up": "\uf102", + "paperclip": "\uf0c6", + "arrow-right-to-city": "\ue4b3", + "ribbon": "\uf4d6", + "lungs": "\uf604", + "arrow-up-9-1": "\uf887", + "litecoin-sign": "\ue1d3", + "border-none": "\uf850", + "circle-nodes": "\ue4e2", + "parachute-box": "\uf4cd", + "indent": "\uf03c", + "truck-field-un": "\ue58e", + "hourglass": "\uf254", + "mountain": "\uf6fc", + "user-doctor": "\uf0f0", + "circle-info": "\uf05a", + "cloud-meatball": "\uf73b", + "camera": "\uf030", + "square-virus": "\ue578", + "meteor": "\uf753", + "car-on": "\ue4dd", + "sleigh": "\uf7cc", + "arrow-down-1-9": "\uf162", + "hand-holding-droplet": "\uf4c1", + "water": "\uf773", + "calendar-check": "\uf274", + "braille": "\uf2a1", + "prescription-bottle-medical": "\uf486", + "landmark": "\uf66f", + "truck": "\uf0d1", + "crosshairs": "\uf05b", + "person-cane": "\ue53c", + "tent": "\ue57d", + "vest-patches": "\ue086", + "check-double": "\uf560", + "arrow-down-a-z": "\uf15d", + "money-bill-wheat": "\ue52a", + "cookie": "\uf563", + "arrow-rotate-left": "\uf0e2", + "hard-drive": "\uf0a0", + "face-grin-squint-tears": "\uf586", + "dumbbell": "\uf44b", + "rectangle-list": "\uf022", + "tarp-droplet": "\ue57c", + "house-medical-circle-check": "\ue511", + "person-skiing-nordic": "\uf7ca", + "calendar-plus": "\uf271", + "plane-arrival": "\uf5af", + "circle-left": "\uf359", + "train-subway": "\uf239", + "chart-gantt": "\ue0e4", + "indian-rupee-sign": "\ue1bc", + "crop-simple": "\uf565", + "money-bill-1": "\uf3d1", + "left-long": "\uf30a", + "dna": "\uf471", + "virus-slash": "\ue075", + "minus": "\uf068", + "chess": "\uf439", + "arrow-left-long": "\uf177", + "plug-circle-check": "\ue55c", + "street-view": "\uf21d", + "franc-sign": "\ue18f", + "volume-off": "\uf026", + "hands-asl-interpreting": "\uf2a3", + "gear": "\uf013", + "droplet-slash": "\uf5c7", + "mosque": "\uf678", + "mosquito": "\ue52b", + "star-of-david": "\uf69a", + "person-military-rifle": "\ue54b", + "cart-shopping": "\uf07a", + "vials": "\uf493", + "plug-circle-plus": "\ue55f", + "place-of-worship": "\uf67f", + "grip-vertical": "\uf58e", + "arrow-turn-up": "\uf148", + "u": "\u0055", + "square-root-variable": "\uf698", + "clock": "\uf017", + "backward-step": "\uf048", + "pallet": "\uf482", + "faucet": "\ue005", + "baseball-bat-ball": "\uf432", + "s": "\u0053", + "timeline": "\ue29c", + "keyboard": "\uf11c", + "caret-down": "\uf0d7", + "house-chimney-medical": "\uf7f2", + "temperature-three-quarters": "\uf2c8", + "mobile-screen": "\uf3cf", + "plane-up": "\ue22d", + "piggy-bank": "\uf4d3", + "battery-half": "\uf242", + "mountain-city": "\ue52e", + "coins": "\uf51e", + "khanda": "\uf66d", + "sliders": "\uf1de", + "folder-tree": "\uf802", + "network-wired": "\uf6ff", + "map-pin": "\uf276", + "hamsa": "\uf665", + "cent-sign": "\ue3f5", + "flask": "\uf0c3", + "person-pregnant": "\ue31e", + "wand-sparkles": "\uf72b", + "ellipsis-vertical": "\uf142", + "ticket": "\uf145", + "power-off": "\uf011", + "right-long": "\uf30b", + "flag-usa": "\uf74d", + "laptop-file": "\ue51d", + "tty": "\uf1e4", + "diagram-next": "\ue476", + "person-rifle": "\ue54e", + "house-medical-circle-exclamation": "\ue512", + "closed-captioning": "\uf20a", + "person-hiking": "\uf6ec", + "venus-double": "\uf226", + "images": "\uf302", + "calculator": "\uf1ec", + "people-pulling": "\ue535", + "n": "\u004e", + "cable-car": "\uf7da", + "cloud-rain": "\uf73d", + "building-circle-xmark": "\ue4d4", + "ship": "\uf21a", + "arrows-down-to-line": "\ue4b8", + "download": "\uf019", + "face-grin": "\uf580", + "delete-left": "\uf55a", + "eye-dropper": "\uf1fb", + "file-circle-check": "\ue5a0", + "forward": "\uf04e", + "mobile": "\uf3ce", + "face-meh": "\uf11a", + "align-center": "\uf037", + "book-skull": "\uf6b7", + "id-card": "\uf2c2", + "outdent": "\uf03b", + "heart-circle-exclamation": "\ue4fe", + "house": "\uf015", + "calendar-week": "\uf784", + "laptop-medical": "\uf812", + "b": "\u0042", + "file-medical": "\uf477", + "dice-one": "\uf525", + "kiwi-bird": "\uf535", + "arrow-right-arrow-left": "\uf0ec", + "rotate-right": "\uf2f9", + "utensils": "\uf2e7", + "arrow-up-wide-short": "\uf161", + "mill-sign": "\ue1ed", + "bowl-rice": "\ue2eb", + "skull": "\uf54c", + "tower-broadcast": "\uf519", + "truck-pickup": "\uf63c", + "up-long": "\uf30c", + "stop": "\uf04d", + "code-merge": "\uf387", + "upload": "\uf093", + "hurricane": "\uf751", + "mound": "\ue52d", + "toilet-portable": "\ue583", + "compact-disc": "\uf51f", + "file-arrow-down": "\uf56d", + "caravan": "\uf8ff", + "shield-cat": "\ue572", + "bolt": "\uf0e7", + "glass-water": "\ue4f4", + "oil-well": "\ue532", + "vault": "\ue2c5", + "mars": "\uf222", + "toilet": "\uf7d8", + "plane-circle-xmark": "\ue557", + "yen-sign": "\uf157", + "ruble-sign": "\uf158", + "sun": "\uf185", + "guitar": "\uf7a6", + "face-laugh-wink": "\uf59c", + "horse-head": "\uf7ab", + "bore-hole": "\ue4c3", + "industry": "\uf275", + "circle-down": "\uf358", + "arrows-turn-to-dots": "\ue4c1", + "florin-sign": "\ue184", + "arrow-down-short-wide": "\uf884", + "less-than": "\u003c", + "angle-down": "\uf107", + "car-tunnel": "\ue4de", + "head-side-cough": "\ue061", + "grip-lines": "\uf7a4", + "thumbs-down": "\uf165", + "user-lock": "\uf502", + "arrow-right-long": "\uf178", + "anchor-circle-xmark": "\ue4ac", + "ellipsis": "\uf141", + "chess-pawn": "\uf443", + "kit-medical": "\uf479", + "person-through-window": "\ue5a9", + "toolbox": "\uf552", + "hands-holding-circle": "\ue4fb", + "bug": "\uf188", + "credit-card": "\uf09d", + "car": "\uf1b9", + "hand-holding-hand": "\ue4f7", + "book-open-reader": "\uf5da", + "mountain-sun": "\ue52f", + "arrows-left-right-to-line": "\ue4ba", + "dice-d20": "\uf6cf", + "truck-droplet": "\ue58c", + "file-circle-xmark": "\ue5a1", + "temperature-arrow-up": "\ue040", + "medal": "\uf5a2", + "bed": "\uf236", + "square-h": "\uf0fd", + "podcast": "\uf2ce", + "temperature-full": "\uf2c7", + "bell": "\uf0f3", + "superscript": "\uf12b", + "plug-circle-xmark": "\ue560", + "star-of-life": "\uf621", + "phone-slash": "\uf3dd", + "paint-roller": "\uf5aa", + "handshake-angle": "\uf4c4", + "location-dot": "\uf3c5", + "file": "\uf15b", + "greater-than": "\u003e", + "person-swimming": "\uf5c4", + "arrow-down": "\uf063", + "droplet": "\uf043", + "eraser": "\uf12d", + "earth-americas": "\uf57d", + "person-burst": "\ue53b", + "dove": "\uf4ba", + "battery-empty": "\uf244", + "socks": "\uf696", + "inbox": "\uf01c", + "section": "\ue447", + "gauge-high": "\uf625", + "envelope-open-text": "\uf658", + "hospital": "\uf0f8", + "wine-bottle": "\uf72f", + "chess-rook": "\uf447", + "bars-staggered": "\uf550", + "dharmachakra": "\uf655", + "hotdog": "\uf80f", + "person-walking-with-cane": "\uf29d", + "drum": "\uf569", + "ice-cream": "\uf810", + "heart-circle-bolt": "\ue4fc", + "fax": "\uf1ac", + "paragraph": "\uf1dd", + "check-to-slot": "\uf772", + "star-half": "\uf089", + "boxes-stacked": "\uf468", + "link": "\uf0c1", + "ear-listen": "\uf2a2", + "tree-city": "\ue587", + "play": "\uf04b", + "font": "\uf031", + "rupiah-sign": "\ue23d", + "magnifying-glass": "\uf002", + "table-tennis-paddle-ball": "\uf45d", + "person-dots-from-line": "\uf470", + "trash-can-arrow-up": "\uf82a", + "naira-sign": "\ue1f6", + "cart-arrow-down": "\uf218", + "walkie-talkie": "\uf8ef", + "file-pen": "\uf31c", + "receipt": "\uf543", + "square-pen": "\uf14b", + "suitcase-rolling": "\uf5c1", + "person-circle-exclamation": "\ue53f", + "chevron-down": "\uf078", + "battery-full": "\uf240", + "skull-crossbones": "\uf714", + "code-compare": "\ue13a", + "list-ul": "\uf0ca", + "school-lock": "\ue56f", + "tower-cell": "\ue585", + "down-long": "\uf309", + "ranking-star": "\ue561", + "chess-king": "\uf43f", + "person-harassing": "\ue549", + "brazilian-real-sign": "\ue46c", + "landmark-dome": "\uf752", + "arrow-up": "\uf062", + "tv": "\uf26c", + "shrimp": "\ue448", + "list-check": "\uf0ae", + "jug-detergent": "\ue519", + "circle-user": "\uf2bd", + "user-shield": "\uf505", + "wind": "\uf72e", + "car-burst": "\uf5e1", + "y": "\u0059", + "person-snowboarding": "\uf7ce", + "truck-fast": "\uf48b", + "fish": "\uf578", + "user-graduate": "\uf501", + "circle-half-stroke": "\uf042", + "clapperboard": "\ue131", + "circle-radiation": "\uf7ba", + "baseball": "\uf433", + "jet-fighter-up": "\ue518", + "diagram-project": "\uf542", + "copy": "\uf0c5", + "volume-xmark": "\uf6a9", + "hand-sparkles": "\ue05d", + "grip": "\uf58d", + "share-from-square": "\uf14d", + "child-combatant": "\ue4e0", + "gun": "\ue19b", + "square-phone": "\uf098", + "plus": "\u002b", + "expand": "\uf065", + "computer": "\ue4e5", + "xmark": "\uf00d", + "arrows-up-down-left-right": "\uf047", + "chalkboard-user": "\uf51c", + "peso-sign": "\ue222", + "building-shield": "\ue4d8", + "baby": "\uf77c", + "users-line": "\ue592", + "quote-left": "\uf10d", + "tractor": "\uf722", + "trash-arrow-up": "\uf829", + "arrow-down-up-lock": "\ue4b0", + "lines-leaning": "\ue51e", + "ruler-combined": "\uf546", + "copyright": "\uf1f9", + "equals": "\u003d", + "blender": "\uf517", + "teeth": "\uf62e", + "shekel-sign": "\uf20b", + "map": "\uf279", + "rocket": "\uf135", + "photo-film": "\uf87c", + "folder-minus": "\uf65d", + "store": "\uf54e", + "arrow-trend-up": "\ue098", + "plug-circle-minus": "\ue55e", + "sign-hanging": "\uf4d9", + "bezier-curve": "\uf55b", + "bell-slash": "\uf1f6", + "tablet": "\uf3fb", + "school-flag": "\ue56e", + "fill": "\uf575", + "angle-up": "\uf106", + "drumstick-bite": "\uf6d7", + "holly-berry": "\uf7aa", + "chevron-left": "\uf053", + "bacteria": "\ue059", + "hand-lizard": "\uf258", + "notdef": "\ue1fe", + "disease": "\uf7fa", + "briefcase-medical": "\uf469", + "genderless": "\uf22d", + "chevron-right": "\uf054", + "retweet": "\uf079", + "car-rear": "\uf5de", + "pump-soap": "\ue06b", + "video-slash": "\uf4e2", + "battery-quarter": "\uf243", + "radio": "\uf8d7", + "baby-carriage": "\uf77d", + "traffic-light": "\uf637", + "thermometer": "\uf491", + "vr-cardboard": "\uf729", + "hand-middle-finger": "\uf806", + "percent": "\u0025", + "truck-moving": "\uf4df", + "glass-water-droplet": "\ue4f5", + "display": "\ue163", + "face-smile": "\uf118", + "thumbtack": "\uf08d", + "trophy": "\uf091", + "person-praying": "\uf683", + "hammer": "\uf6e3", + "hand-peace": "\uf25b", + "rotate": "\uf2f1", + "spinner": "\uf110", + "robot": "\uf544", + "peace": "\uf67c", + "gears": "\uf085", + "warehouse": "\uf494", + "arrow-up-right-dots": "\ue4b7", + "splotch": "\uf5bc", + "face-grin-hearts": "\uf584", + "dice-four": "\uf524", + "sim-card": "\uf7c4", + "transgender": "\uf225", + "mercury": "\uf223", + "arrow-turn-down": "\uf149", + "person-falling-burst": "\ue547", + "award": "\uf559", + "ticket-simple": "\uf3ff", + "building": "\uf1ad", + "angles-left": "\uf100", + "qrcode": "\uf029", + "clock-rotate-left": "\uf1da", + "face-grin-beam-sweat": "\uf583", + "file-export": "\uf56e", + "shield": "\uf132", + "arrow-up-short-wide": "\uf885", + "house-medical": "\ue3b2", + "golf-ball-tee": "\uf450", + "circle-chevron-left": "\uf137", + "house-chimney-window": "\ue00d", + "pen-nib": "\uf5ad", + "tent-arrow-turn-left": "\ue580", + "tents": "\ue582", + "wand-magic": "\uf0d0", + "dog": "\uf6d3", + "carrot": "\uf787", + "moon": "\uf186", + "wine-glass-empty": "\uf5ce", + "cheese": "\uf7ef", + "yin-yang": "\uf6ad", + "music": "\uf001", + "code-commit": "\uf386", + "temperature-low": "\uf76b", + "person-biking": "\uf84a", + "broom": "\uf51a", + "shield-heart": "\ue574", + "gopuram": "\uf664", + "earth-oceania": "\ue47b", + "square-xmark": "\uf2d3", + "hashtag": "\u0023", + "up-right-and-down-left-from-center": "\uf424", + "oil-can": "\uf613", + "t": "\u0054", + "hippo": "\uf6ed", + "chart-column": "\ue0e3", + "infinity": "\uf534", + "vial-circle-check": "\ue596", + "person-arrow-down-to-line": "\ue538", + "voicemail": "\uf897", + "fan": "\uf863", + "person-walking-luggage": "\ue554", + "up-down": "\uf338", + "cloud-moon-rain": "\uf73c", + "calendar": "\uf133", + "trailer": "\ue041", + "bahai": "\uf666", + "sd-card": "\uf7c2", + "dragon": "\uf6d5", + "shoe-prints": "\uf54b", + "circle-plus": "\uf055", + "face-grin-tongue-wink": "\uf58b", + "hand-holding": "\uf4bd", + "plug-circle-exclamation": "\ue55d", + "link-slash": "\uf127", + "clone": "\uf24d", + "person-walking-arrow-loop-left": "\ue551", + "arrow-up-z-a": "\uf882", + "fire-flame-curved": "\uf7e4", + "tornado": "\uf76f", + "file-circle-plus": "\ue494", + "book-quran": "\uf687", + "anchor": "\uf13d", + "border-all": "\uf84c", + "face-angry": "\uf556", + "cookie-bite": "\uf564", + "arrow-trend-down": "\ue097", + "rss": "\uf09e", + "draw-polygon": "\uf5ee", + "scale-balanced": "\uf24e", + "gauge-simple-high": "\uf62a", + "shower": "\uf2cc", + "desktop": "\uf390", + "m": "\u004d", + "table-list": "\uf00b", + "comment-sms": "\uf7cd", + "book": "\uf02d", + "user-plus": "\uf234", + "check": "\uf00c", + "battery-three-quarters": "\uf241", + "house-circle-check": "\ue509", + "angle-left": "\uf104", + "diagram-successor": "\ue47a", + "truck-arrow-right": "\ue58b", + "arrows-split-up-and-left": "\ue4bc", + "hand-fist": "\uf6de", + "cloud-moon": "\uf6c3", + "briefcase": "\uf0b1", + "person-falling": "\ue546", + "image-portrait": "\uf3e0", + "user-tag": "\uf507", + "rug": "\ue569", + "earth-europe": "\uf7a2", + "cart-flatbed-suitcase": "\uf59d", + "rectangle-xmark": "\uf410", + "baht-sign": "\ue0ac", + "book-open": "\uf518", + "book-journal-whills": "\uf66a", + "handcuffs": "\ue4f8", + "triangle-exclamation": "\uf071", + "database": "\uf1c0", + "share": "\uf064", + "bottle-droplet": "\ue4c4", + "mask-face": "\ue1d7", + "hill-rockslide": "\ue508", + "right-left": "\uf362", + "paper-plane": "\uf1d8", + "road-circle-exclamation": "\ue565", + "dungeon": "\uf6d9", + "align-right": "\uf038", + "money-bill-1-wave": "\uf53b", + "life-ring": "\uf1cd", + "hands": "\uf2a7", + "calendar-day": "\uf783", + "water-ladder": "\uf5c5", + "arrows-up-down": "\uf07d", + "face-grimace": "\uf57f", + "wheelchair-move": "\ue2ce", + "turn-down": "\uf3be", + "person-walking-arrow-right": "\ue552", + "square-envelope": "\uf199", + "dice": "\uf522", + "bowling-ball": "\uf436", + "brain": "\uf5dc", + "bandage": "\uf462", + "calendar-minus": "\uf272", + "circle-xmark": "\uf057", + "gifts": "\uf79c", + "hotel": "\uf594", + "earth-asia": "\uf57e", + "id-card-clip": "\uf47f", + "magnifying-glass-plus": "\uf00e", + "thumbs-up": "\uf164", + "user-clock": "\uf4fd", + "hand-dots": "\uf461", + "file-invoice": "\uf570", + "window-minimize": "\uf2d1", + "mug-saucer": "\uf0f4", + "brush": "\uf55d", + "mask": "\uf6fa", + "magnifying-glass-minus": "\uf010", + "ruler-vertical": "\uf548", + "user-large": "\uf406", + "train-tram": "\ue5b4", + "user-nurse": "\uf82f", + "syringe": "\uf48e", + "cloud-sun": "\uf6c4", + "stopwatch-20": "\ue06f", + "square-full": "\uf45c", + "magnet": "\uf076", + "jar": "\ue516", + "note-sticky": "\uf249", + "bug-slash": "\ue490", + "arrow-up-from-water-pump": "\ue4b6", + "bone": "\uf5d7", + "user-injured": "\uf728", + "face-sad-tear": "\uf5b4", + "plane": "\uf072", + "tent-arrows-down": "\ue581", + "exclamation": "\u0021", + "arrows-spin": "\ue4bb", + "print": "\uf02f", + "turkish-lira-sign": "\ue2bb", + "dollar-sign": "\u0024", + "x": "\u0058", + "magnifying-glass-dollar": "\uf688", + "users-gear": "\uf509", + "person-military-pointing": "\ue54a", + "building-columns": "\uf19c", + "umbrella": "\uf0e9", + "trowel": "\ue589", + "d": "\u0044", + "stapler": "\ue5af", + "masks-theater": "\uf630", + "kip-sign": "\ue1c4", + "hand-point-left": "\uf0a5", + "handshake-simple": "\uf4c6", + "jet-fighter": "\uf0fb", + "square-share-nodes": "\uf1e1", + "barcode": "\uf02a", + "plus-minus": "\ue43c", + "video": "\uf03d", + "graduation-cap": "\uf19d", + "hand-holding-medical": "\ue05c", + "person-circle-check": "\ue53e", + "turn-up": "\uf3bf", + }, +} \ No newline at end of file diff --git a/addons/fontawesome/FontAwesome.gd b/addons/fontawesome/FontAwesome.gd new file mode 100644 index 0000000..50631eb --- /dev/null +++ b/addons/fontawesome/FontAwesome.gd @@ -0,0 +1,44 @@ +@tool +extends Label + +@export_category("FontAwesome") +@export_range(1, 16384) var icon_size: int = 16: set = set_icon_size +@export_enum("solid", "regular", "brands") var icon_type: String = "solid": set = set_icon_type +@export var icon_name: String = "circle-question": set = set_icon_name + +const icon_fonts: Dictionary = { + "solid": "res://addons/fontawesome/fonts/fa-solid-900.woff2", + "regular": "res://addons/fontawesome/fonts/fa-regular-400.woff2", + "brands": "res://addons/fontawesome/fonts/fa-brands-400.woff2" +} + +const cheatsheet: Dictionary = preload("res://addons/fontawesome/All.gd").all + +func _init(): + horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER + vertical_alignment = VERTICAL_ALIGNMENT_CENTER + # disable some things, this is icon not text + auto_translate = false + localize_numeral_system = false + + set_icon_type(icon_type) + set_icon_size(icon_size) + set_icon_name(icon_name) + +func set_icon_size(new_size: int): + icon_size = clamp(new_size, 1, 16384) + add_theme_font_size_override("font_size", icon_size) + size = Vector2(icon_size, icon_size) + +func set_icon_type(new_type: String): + icon_type = new_type + match icon_type: + "solid", "regular", "brands": + add_theme_font_override("font", load(icon_fonts[icon_type])) + +func set_icon_name(new_name: String): + icon_name = new_name + var iconcode = "" + if icon_name in cheatsheet[icon_type]: + iconcode = cheatsheet[icon_type][icon_name] + set_text(iconcode) diff --git a/addons/godot-version-management/LICENSE b/addons/fontawesome/LICENSE.txt similarity index 96% rename from addons/godot-version-management/LICENSE rename to addons/fontawesome/LICENSE.txt index 743520c..01bd21e 100644 --- a/addons/godot-version-management/LICENSE +++ b/addons/fontawesome/LICENSE.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 Tomek +Copyright (c) 2023 LetterN Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/addons/fontawesome/flag-solid.svg b/addons/fontawesome/flag-solid.svg new file mode 100644 index 0000000..cd62b8c --- /dev/null +++ b/addons/fontawesome/flag-solid.svg @@ -0,0 +1 @@ + diff --git a/addons/fontawesome/flag-solid.svg.import b/addons/fontawesome/flag-solid.svg.import new file mode 100644 index 0000000..956141a --- /dev/null +++ b/addons/fontawesome/flag-solid.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdk6bwkag1wre" +path="res://.godot/imported/flag-solid.svg-f443982cac7d006eea43c772e2428bae.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/fontawesome/flag-solid.svg" +dest_files=["res://.godot/imported/flag-solid.svg-f443982cac7d006eea43c772e2428bae.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/fontawesome/fonts/LICENSE.txt b/addons/fontawesome/fonts/LICENSE.txt new file mode 100644 index 0000000..39e18e3 --- /dev/null +++ b/addons/fontawesome/fonts/LICENSE.txt @@ -0,0 +1,165 @@ +Fonticons, Inc. (https://fontawesome.com) + +-------------------------------------------------------------------------------- + +Font Awesome Free License + +Font Awesome Free is free, open source, and GPL friendly. You can use it for +commercial projects, open source projects, or really almost whatever you want. +Full Font Awesome Free license: https://fontawesome.com/license/free. + +-------------------------------------------------------------------------------- + +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) + +The Font Awesome Free download is licensed under a Creative Commons +Attribution 4.0 International License and applies to all icons packaged +as SVG and JS file types. + +-------------------------------------------------------------------------------- + +# Fonts: SIL OFL 1.1 License + +In the Font Awesome Free download, the SIL OFL license applies to all icons +packaged as web and desktop font files. + +Copyright (c) 2023 Fonticons, Inc. (https://fontawesome.com) +with Reserved Font Name: "Font Awesome". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +SIL OPEN FONT LICENSE +Version 1.1 - 26 February 2007 + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting — in part or in whole — any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +-------------------------------------------------------------------------------- + +# Code: MIT License (https://opensource.org/licenses/MIT) + +In the Font Awesome Free download, the MIT license applies to all non-font and +non-icon files. + +Copyright 2023 Fonticons, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in the +Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +# Attribution + +Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font +Awesome Free files already contain embedded comments with sufficient +attribution, so you shouldn't need to do anything additional when using these +files normally. + +We've kept attribution comments terse, so we ask that you do not actively work +to remove them from files, especially code. They're a great way for folks to +learn about Font Awesome. + +-------------------------------------------------------------------------------- + +# Brand Icons + +All brand icons are trademarks of their respective owners. The use of these +trademarks does not indicate endorsement of the trademark holder by Font +Awesome, nor vice versa. **Please do not use brand logos for any purpose except +to represent the company, product, or service to which they refer.** diff --git a/addons/fontawesome/fonts/fa-brands-400.woff2 b/addons/fontawesome/fonts/fa-brands-400.woff2 new file mode 100644 index 0000000..5929101 Binary files /dev/null and b/addons/fontawesome/fonts/fa-brands-400.woff2 differ diff --git a/addons/fontawesome/fonts/fa-brands-400.woff2.import b/addons/fontawesome/fonts/fa-brands-400.woff2.import new file mode 100644 index 0000000..38b172a --- /dev/null +++ b/addons/fontawesome/fonts/fa-brands-400.woff2.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://clt4puu367e82" +path="res://.godot/imported/fa-brands-400.woff2-01946f939132baa0e37dbdeac9412933.fontdata" + +[deps] + +source_file="res://addons/fontawesome/fonts/fa-brands-400.woff2" +dest_files=["res://.godot/imported/fa-brands-400.woff2-01946f939132baa0e37dbdeac9412933.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/fontawesome/fonts/fa-regular-400.woff2 b/addons/fontawesome/fonts/fa-regular-400.woff2 new file mode 100644 index 0000000..953d554 Binary files /dev/null and b/addons/fontawesome/fonts/fa-regular-400.woff2 differ diff --git a/addons/fontawesome/fonts/fa-regular-400.woff2.import b/addons/fontawesome/fonts/fa-regular-400.woff2.import new file mode 100644 index 0000000..cf4d07e --- /dev/null +++ b/addons/fontawesome/fonts/fa-regular-400.woff2.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://ew3t30vlpjit" +path="res://.godot/imported/fa-regular-400.woff2-bb494eebb9050a2fb4b1382e97f43781.fontdata" + +[deps] + +source_file="res://addons/fontawesome/fonts/fa-regular-400.woff2" +dest_files=["res://.godot/imported/fa-regular-400.woff2-bb494eebb9050a2fb4b1382e97f43781.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/fontawesome/fonts/fa-solid-900.woff2 b/addons/fontawesome/fonts/fa-solid-900.woff2 new file mode 100644 index 0000000..83433f4 Binary files /dev/null and b/addons/fontawesome/fonts/fa-solid-900.woff2 differ diff --git a/addons/fontawesome/fonts/fa-solid-900.woff2.import b/addons/fontawesome/fonts/fa-solid-900.woff2.import new file mode 100644 index 0000000..838bc81 --- /dev/null +++ b/addons/fontawesome/fonts/fa-solid-900.woff2.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bkqnxsphaabhw" +path="res://.godot/imported/fa-solid-900.woff2-a9219e5bf1517e35af668434330a4deb.fontdata" + +[deps] + +source_file="res://addons/fontawesome/fonts/fa-solid-900.woff2" +dest_files=["res://.godot/imported/fa-solid-900.woff2-a9219e5bf1517e35af668434330a4deb.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/fontawesome/plugin.cfg b/addons/fontawesome/plugin.cfg new file mode 100644 index 0000000..4cdc008 --- /dev/null +++ b/addons/fontawesome/plugin.cfg @@ -0,0 +1,6 @@ +[plugin] +name="FontAwesome" +description="FontAwesome 6 Icons" +author="LetterN" +version="6.3.0" +script="plugin.gd" diff --git a/addons/fontawesome/plugin.gd b/addons/fontawesome/plugin.gd new file mode 100644 index 0000000..da01422 --- /dev/null +++ b/addons/fontawesome/plugin.gd @@ -0,0 +1,8 @@ +@tool +extends EditorPlugin + +func _enter_tree(): + add_custom_type("FontAwesome", "Label", preload("res://addons/fontawesome/FontAwesome.gd"), preload("res://addons/fontawesome/flag-solid.svg")) + +func _exit_tree(): + remove_custom_type("FontAwesome") diff --git a/addons/godot-version-management/README.md b/addons/godot-version-management/README.md deleted file mode 100644 index 40a0123..0000000 --- a/addons/godot-version-management/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Godot Version Manager - - - -This addon is for developpers that want a centralized place for version naming / build number and then display it in game. - -It allow you to configure version and build in project settings. - -These configurations are synchronized to all existing export of your project. - -Moreover configurations can be loaded for in game display. - -## How to install it - -You can find this addon in Godot AssetLibrary -See the Godot Addon install section : https://docs.godotengine.org/en/stable/tutorials/plugins/editor/installing_plugins.html - -## How to use it for exports - -Once the addon activated it add two entry in your project configuration: - -- Application / Config / Version as String (application/config/version default to 0.0.1) -- Application / Config / Build as Integer (application/config/build default to 1) - -You can change the version and the build numbers. -It will update all your exports versions value to the project config value. -Then you need to reload the project (Project / Reload current project). - -See below section to know why you need to reload project. - -For Android exports: -* version is version/name -* build is version/code - -For iOS and MacOS exports: -* version is application/short_version -* build is application/version - -For Windows Desktop exports: -* version is application/file_version and application/product_version - -For HTML5 and UWP exports no versions specified. - -## How to use it for in game display - -The version and build numbers can be accessed for in game use like that: - - -```GDScript - # To get version string - var version = ProjectSettings.get_setting("application/config/version") - # To get build number - var build = ProjectSettings.get_setting("application/config/build") -``` - - - - -## Why I need to reload project ? - -The GodotVersionManager addon update the export-presets.cfg file. - -Because of Godot keep in memory ExportsSettings and do not reload it from export-presets.cfg file you will need to reload your project. - -When project is loaded Godot load in memory the export-presets.cfg . - -## Support Me - -You to buy me a coffee ? -Buy Me a Coffee diff --git a/addons/godot-version-management/godot_version_manager.gd b/addons/godot-version-management/godot_version_manager.gd deleted file mode 100644 index d7fea72..0000000 --- a/addons/godot-version-management/godot_version_manager.gd +++ /dev/null @@ -1,78 +0,0 @@ -# By Erasor -tool -extends EditorPlugin - -const PLUGIN_NAME = "Godot-Version-Manager" -const DEBUG = true -# Use same name as https://github.com/godotengine/godot/pull/35555 -const PROJECT_VERSION_SETTING = "application/config/version" -const PROJECT_BUILD_SETTING = "application/config/build" -const EXPORT_PRESETS_FILE = "res://export_presets.cfg" -var current_version -var current_build - -func _enter_tree(): - if not ProjectSettings.has_setting(PROJECT_VERSION_SETTING): - ProjectSettings.set_setting(PROJECT_VERSION_SETTING, "0.0.1") - if not ProjectSettings.has_setting(PROJECT_BUILD_SETTING): - ProjectSettings.set_setting(PROJECT_BUILD_SETTING, 1) - current_version = ProjectSettings.get_setting(PROJECT_VERSION_SETTING) - current_build = ProjectSettings.get_setting(PROJECT_BUILD_SETTING) - - -func _exit_tree(): - # Do not remove the verson config, may conflict with https://github.com/godotengine/godot/pull/35555 - pass - - -func apply_changes(): - _update_export_presets() - - -func save_external_data(): - _update_export_presets() - - -func _update_export_presets(): - # If config version changed, update all exports - if ProjectSettings.get_setting(PROJECT_VERSION_SETTING) != current_version: - var export_config: ConfigFile = ConfigFile.new() - var err = export_config.load(EXPORT_PRESETS_FILE) - if err == OK: - # Loop limited to 100 exports - for i in range(0, 100): - var section = "preset." + str(i) - if export_config.has_section(section): - plugin_log("Update Export " + export_config.get_value(section, "platform")) - # Update Android exports configs - if export_config.get_value(section, "platform") == "Android": - export_config.set_value(section + ".options", 'version/name', ProjectSettings.get_setting(PROJECT_VERSION_SETTING)) - export_config.set_value(section + ".options", 'version/code', ProjectSettings.get_setting(PROJECT_BUILD_SETTING)) - if export_config.get_value(section, "platform") == "iOS" or export_config.get_value(section, "platform") == "Mac OSX": - export_config.set_value(section + ".options", 'application/short_version', ProjectSettings.get_setting(PROJECT_VERSION_SETTING)) - export_config.set_value(section + ".options", 'application/version', ProjectSettings.get_setting(PROJECT_BUILD_SETTING)) - if export_config.get_value(section, "platform") == "UWP": - # TODO parsing of version to minor/major - pass - if export_config.get_value(section, "platform") == "Windows Desktop": - export_config.set_value(section + ".options", 'application/file_version', ProjectSettings.get_setting(PROJECT_VERSION_SETTING)) - export_config.set_value(section + ".options", 'application/product_version', ProjectSettings.get_setting(PROJECT_VERSION_SETTING)) - else: - break - err = export_config.save(EXPORT_PRESETS_FILE) - ProjectSettings.save() - if err == OK: - plugin_log("All exports updated") - else: - plugin_log("Error saving " + EXPORT_PRESETS_FILE + ", exports not updated") - else: - plugin_log('Error open ' + EXPORT_PRESETS_FILE) - - -func plugin_log(message): - if (DEBUG): - var time : Dictionary = OS.get_datetime() - var date_string : String = "%02d:%02d" % [time.hour, time.minute] - print(date_string, " - ", PLUGIN_NAME, " - ", message) - - diff --git a/addons/godot-version-management/plugin.cfg b/addons/godot-version-management/plugin.cfg deleted file mode 100644 index 52c8d5a..0000000 --- a/addons/godot-version-management/plugin.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[plugin] - -name="Godot-Version-Manager" -description="Godot plugin to manage versions for exports. -It centralize the version number in project." -author="Erasor" -version="1.0.0" -script="godot_version_manager.gd" diff --git a/addons/kenney_ui_audio/LICENSE.txt b/addons/kenney_ui_audio/LICENSE.txt new file mode 100644 index 0000000..f1f770a --- /dev/null +++ b/addons/kenney_ui_audio/LICENSE.txt @@ -0,0 +1,21 @@ + + + UI SFX Set + + by Kenney Vleugels (Kenney.nl) + + ------------------------------ + + License (Creative Commons Zero, CC0) + http://creativecommons.org/publicdomain/zero/1.0/ + + You may use these assets in personal and commercial projects. + Credit (Kenney or www.kenney.nl) would be nice but is not mandatory. + + ------------------------------ + + Donate: http://support.kenney.nl + Request: http://request.kenney.nl + + Follow on Twitter for updates: + @KenneyNL \ No newline at end of file diff --git a/addons/kenney_ui_audio/click1.wav b/addons/kenney_ui_audio/click1.wav new file mode 100644 index 0000000..2454780 Binary files /dev/null and b/addons/kenney_ui_audio/click1.wav differ diff --git a/addons/kenney_ui_audio/click1.wav.import b/addons/kenney_ui_audio/click1.wav.import new file mode 100644 index 0000000..0e3ed7e --- /dev/null +++ b/addons/kenney_ui_audio/click1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://qsfmauhsas17" +path="res://.godot/imported/click1.wav-6455415d999fb02a4d0e65426c8e3fbb.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/click1.wav" +dest_files=["res://.godot/imported/click1.wav-6455415d999fb02a4d0e65426c8e3fbb.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/click2.wav b/addons/kenney_ui_audio/click2.wav new file mode 100644 index 0000000..c20fd33 Binary files /dev/null and b/addons/kenney_ui_audio/click2.wav differ diff --git a/addons/kenney_ui_audio/click2.wav.import b/addons/kenney_ui_audio/click2.wav.import new file mode 100644 index 0000000..163c032 --- /dev/null +++ b/addons/kenney_ui_audio/click2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://vjq6jqpqpyxm" +path="res://.godot/imported/click2.wav-e4d4f6fc85d10146603686d4a7b23a41.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/click2.wav" +dest_files=["res://.godot/imported/click2.wav-e4d4f6fc85d10146603686d4a7b23a41.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/click3.wav b/addons/kenney_ui_audio/click3.wav new file mode 100644 index 0000000..73dc62e Binary files /dev/null and b/addons/kenney_ui_audio/click3.wav differ diff --git a/addons/kenney_ui_audio/click3.wav.import b/addons/kenney_ui_audio/click3.wav.import new file mode 100644 index 0000000..3271fc5 --- /dev/null +++ b/addons/kenney_ui_audio/click3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d3koabe21yusw" +path="res://.godot/imported/click3.wav-191e18de041e05b52c4992cf5dba790b.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/click3.wav" +dest_files=["res://.godot/imported/click3.wav-191e18de041e05b52c4992cf5dba790b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/click4.wav b/addons/kenney_ui_audio/click4.wav new file mode 100644 index 0000000..0903a32 Binary files /dev/null and b/addons/kenney_ui_audio/click4.wav differ diff --git a/addons/kenney_ui_audio/click4.wav.import b/addons/kenney_ui_audio/click4.wav.import new file mode 100644 index 0000000..dfe8c0e --- /dev/null +++ b/addons/kenney_ui_audio/click4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://de0mgr75dqogp" +path="res://.godot/imported/click4.wav-d9ec980ae5410495fe7f07a33dce82bb.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/click4.wav" +dest_files=["res://.godot/imported/click4.wav-d9ec980ae5410495fe7f07a33dce82bb.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/click5.wav b/addons/kenney_ui_audio/click5.wav new file mode 100644 index 0000000..6e907ee Binary files /dev/null and b/addons/kenney_ui_audio/click5.wav differ diff --git a/addons/kenney_ui_audio/click5.wav.import b/addons/kenney_ui_audio/click5.wav.import new file mode 100644 index 0000000..44b7915 --- /dev/null +++ b/addons/kenney_ui_audio/click5.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d0mc5wktyasre" +path="res://.godot/imported/click5.wav-69a681cdf29c823e702327e1e8f5476b.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/click5.wav" +dest_files=["res://.godot/imported/click5.wav-69a681cdf29c823e702327e1e8f5476b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/mouseclick1.wav b/addons/kenney_ui_audio/mouseclick1.wav new file mode 100644 index 0000000..dcb3cf4 Binary files /dev/null and b/addons/kenney_ui_audio/mouseclick1.wav differ diff --git a/addons/kenney_ui_audio/mouseclick1.wav.import b/addons/kenney_ui_audio/mouseclick1.wav.import new file mode 100644 index 0000000..4c8ed24 --- /dev/null +++ b/addons/kenney_ui_audio/mouseclick1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://djpfxob43wiul" +path="res://.godot/imported/mouseclick1.wav-50584c065a760e99151dd6a173cc33ec.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/mouseclick1.wav" +dest_files=["res://.godot/imported/mouseclick1.wav-50584c065a760e99151dd6a173cc33ec.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/mouserelease1.wav b/addons/kenney_ui_audio/mouserelease1.wav new file mode 100644 index 0000000..d16c2b0 Binary files /dev/null and b/addons/kenney_ui_audio/mouserelease1.wav differ diff --git a/addons/kenney_ui_audio/mouserelease1.wav.import b/addons/kenney_ui_audio/mouserelease1.wav.import new file mode 100644 index 0000000..0b6f424 --- /dev/null +++ b/addons/kenney_ui_audio/mouserelease1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://jehejt5mpgdh" +path="res://.godot/imported/mouserelease1.wav-925ae13f439fe21624dc79f7c203d6eb.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/mouserelease1.wav" +dest_files=["res://.godot/imported/mouserelease1.wav-925ae13f439fe21624dc79f7c203d6eb.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/rollover1.wav b/addons/kenney_ui_audio/rollover1.wav new file mode 100644 index 0000000..e3ff6ea Binary files /dev/null and b/addons/kenney_ui_audio/rollover1.wav differ diff --git a/addons/kenney_ui_audio/rollover1.wav.import b/addons/kenney_ui_audio/rollover1.wav.import new file mode 100644 index 0000000..dfb417b --- /dev/null +++ b/addons/kenney_ui_audio/rollover1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://blc0r2oliif3m" +path="res://.godot/imported/rollover1.wav-2290a57362715e9e23e123b2bbb2adba.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/rollover1.wav" +dest_files=["res://.godot/imported/rollover1.wav-2290a57362715e9e23e123b2bbb2adba.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/rollover2.wav b/addons/kenney_ui_audio/rollover2.wav new file mode 100644 index 0000000..6a6573b Binary files /dev/null and b/addons/kenney_ui_audio/rollover2.wav differ diff --git a/addons/kenney_ui_audio/rollover2.wav.import b/addons/kenney_ui_audio/rollover2.wav.import new file mode 100644 index 0000000..446a7e7 --- /dev/null +++ b/addons/kenney_ui_audio/rollover2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://w64g2ahka6dk" +path="res://.godot/imported/rollover2.wav-76041bda4383c69214b9e7ccf1a2051e.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/rollover2.wav" +dest_files=["res://.godot/imported/rollover2.wav-76041bda4383c69214b9e7ccf1a2051e.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/rollover3.wav b/addons/kenney_ui_audio/rollover3.wav new file mode 100644 index 0000000..f4c1581 Binary files /dev/null and b/addons/kenney_ui_audio/rollover3.wav differ diff --git a/addons/kenney_ui_audio/rollover3.wav.import b/addons/kenney_ui_audio/rollover3.wav.import new file mode 100644 index 0000000..ab018e5 --- /dev/null +++ b/addons/kenney_ui_audio/rollover3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://4rjpsf1lkph1" +path="res://.godot/imported/rollover3.wav-8a4f0c940c94c60009c4b5b83a84ddf0.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/rollover3.wav" +dest_files=["res://.godot/imported/rollover3.wav-8a4f0c940c94c60009c4b5b83a84ddf0.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/rollover4.wav b/addons/kenney_ui_audio/rollover4.wav new file mode 100644 index 0000000..11dfeda Binary files /dev/null and b/addons/kenney_ui_audio/rollover4.wav differ diff --git a/addons/kenney_ui_audio/rollover4.wav.import b/addons/kenney_ui_audio/rollover4.wav.import new file mode 100644 index 0000000..a14696f --- /dev/null +++ b/addons/kenney_ui_audio/rollover4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d275uw1nvvnhu" +path="res://.godot/imported/rollover4.wav-c67a43968eafc478e9fdb0188e82bcaf.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/rollover4.wav" +dest_files=["res://.godot/imported/rollover4.wav-c67a43968eafc478e9fdb0188e82bcaf.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/rollover5.wav b/addons/kenney_ui_audio/rollover5.wav new file mode 100644 index 0000000..a4d9616 Binary files /dev/null and b/addons/kenney_ui_audio/rollover5.wav differ diff --git a/addons/kenney_ui_audio/rollover5.wav.import b/addons/kenney_ui_audio/rollover5.wav.import new file mode 100644 index 0000000..bb3abb9 --- /dev/null +++ b/addons/kenney_ui_audio/rollover5.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bh8617vgogm38" +path="res://.godot/imported/rollover5.wav-764adea13c87e7d15f82dd85339d9c65.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/rollover5.wav" +dest_files=["res://.godot/imported/rollover5.wav-764adea13c87e7d15f82dd85339d9c65.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/rollover6.wav b/addons/kenney_ui_audio/rollover6.wav new file mode 100644 index 0000000..929cd04 Binary files /dev/null and b/addons/kenney_ui_audio/rollover6.wav differ diff --git a/addons/kenney_ui_audio/rollover6.wav.import b/addons/kenney_ui_audio/rollover6.wav.import new file mode 100644 index 0000000..de43fe8 --- /dev/null +++ b/addons/kenney_ui_audio/rollover6.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b5etqpq8bq66i" +path="res://.godot/imported/rollover6.wav-5b4b75ae4621ba2f0753784e2b2f1c07.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/rollover6.wav" +dest_files=["res://.godot/imported/rollover6.wav-5b4b75ae4621ba2f0753784e2b2f1c07.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch1.wav b/addons/kenney_ui_audio/switch1.wav new file mode 100644 index 0000000..26f0665 Binary files /dev/null and b/addons/kenney_ui_audio/switch1.wav differ diff --git a/addons/kenney_ui_audio/switch1.wav.import b/addons/kenney_ui_audio/switch1.wav.import new file mode 100644 index 0000000..58b65e8 --- /dev/null +++ b/addons/kenney_ui_audio/switch1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c2gdjew17v5rb" +path="res://.godot/imported/switch1.wav-49860a273fb84f64ada51aa5f0c1fb32.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch1.wav" +dest_files=["res://.godot/imported/switch1.wav-49860a273fb84f64ada51aa5f0c1fb32.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch10.wav b/addons/kenney_ui_audio/switch10.wav new file mode 100644 index 0000000..ee435d2 Binary files /dev/null and b/addons/kenney_ui_audio/switch10.wav differ diff --git a/addons/kenney_ui_audio/switch10.wav.import b/addons/kenney_ui_audio/switch10.wav.import new file mode 100644 index 0000000..935ea26 --- /dev/null +++ b/addons/kenney_ui_audio/switch10.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cl6yeh0ac8o8s" +path="res://.godot/imported/switch10.wav-e25e39fd217c6c92fcc7fa9e725113dd.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch10.wav" +dest_files=["res://.godot/imported/switch10.wav-e25e39fd217c6c92fcc7fa9e725113dd.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch11.wav b/addons/kenney_ui_audio/switch11.wav new file mode 100644 index 0000000..6503184 Binary files /dev/null and b/addons/kenney_ui_audio/switch11.wav differ diff --git a/addons/kenney_ui_audio/switch11.wav.import b/addons/kenney_ui_audio/switch11.wav.import new file mode 100644 index 0000000..cdd5506 --- /dev/null +++ b/addons/kenney_ui_audio/switch11.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://btmwmg064j55y" +path="res://.godot/imported/switch11.wav-dd799b7d6a321bd4bf7ad99179889d2f.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch11.wav" +dest_files=["res://.godot/imported/switch11.wav-dd799b7d6a321bd4bf7ad99179889d2f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch12.wav b/addons/kenney_ui_audio/switch12.wav new file mode 100644 index 0000000..6216f8c Binary files /dev/null and b/addons/kenney_ui_audio/switch12.wav differ diff --git a/addons/kenney_ui_audio/switch12.wav.import b/addons/kenney_ui_audio/switch12.wav.import new file mode 100644 index 0000000..f9a5ec4 --- /dev/null +++ b/addons/kenney_ui_audio/switch12.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c4frog61dyv5q" +path="res://.godot/imported/switch12.wav-11a273a32ba3db16df867f4ff5a04360.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch12.wav" +dest_files=["res://.godot/imported/switch12.wav-11a273a32ba3db16df867f4ff5a04360.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch13.wav b/addons/kenney_ui_audio/switch13.wav new file mode 100644 index 0000000..54d6992 Binary files /dev/null and b/addons/kenney_ui_audio/switch13.wav differ diff --git a/addons/kenney_ui_audio/switch13.wav.import b/addons/kenney_ui_audio/switch13.wav.import new file mode 100644 index 0000000..454a8a7 --- /dev/null +++ b/addons/kenney_ui_audio/switch13.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dsgjokwvkbcgi" +path="res://.godot/imported/switch13.wav-a06d1bafecd411d3f1bb80d48e308bec.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch13.wav" +dest_files=["res://.godot/imported/switch13.wav-a06d1bafecd411d3f1bb80d48e308bec.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch14.wav b/addons/kenney_ui_audio/switch14.wav new file mode 100644 index 0000000..91d6f7f Binary files /dev/null and b/addons/kenney_ui_audio/switch14.wav differ diff --git a/addons/kenney_ui_audio/switch14.wav.import b/addons/kenney_ui_audio/switch14.wav.import new file mode 100644 index 0000000..646105d --- /dev/null +++ b/addons/kenney_ui_audio/switch14.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ytymxv6u0780" +path="res://.godot/imported/switch14.wav-407774019f5dd6aa7e70f9fd3fa5489d.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch14.wav" +dest_files=["res://.godot/imported/switch14.wav-407774019f5dd6aa7e70f9fd3fa5489d.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch15.wav b/addons/kenney_ui_audio/switch15.wav new file mode 100644 index 0000000..ef1e948 Binary files /dev/null and b/addons/kenney_ui_audio/switch15.wav differ diff --git a/addons/kenney_ui_audio/switch15.wav.import b/addons/kenney_ui_audio/switch15.wav.import new file mode 100644 index 0000000..8ab4e31 --- /dev/null +++ b/addons/kenney_ui_audio/switch15.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bd7j1lk0hv7qh" +path="res://.godot/imported/switch15.wav-db1d62c5a4d9439335ac0f95dc0e619f.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch15.wav" +dest_files=["res://.godot/imported/switch15.wav-db1d62c5a4d9439335ac0f95dc0e619f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch16.wav b/addons/kenney_ui_audio/switch16.wav new file mode 100644 index 0000000..3412ca2 Binary files /dev/null and b/addons/kenney_ui_audio/switch16.wav differ diff --git a/addons/kenney_ui_audio/switch16.wav.import b/addons/kenney_ui_audio/switch16.wav.import new file mode 100644 index 0000000..94b18b8 --- /dev/null +++ b/addons/kenney_ui_audio/switch16.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cn2t8ft6nosb4" +path="res://.godot/imported/switch16.wav-c4112140396afc1b2d36178d6c49c40c.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch16.wav" +dest_files=["res://.godot/imported/switch16.wav-c4112140396afc1b2d36178d6c49c40c.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch17.wav b/addons/kenney_ui_audio/switch17.wav new file mode 100644 index 0000000..1d0643e Binary files /dev/null and b/addons/kenney_ui_audio/switch17.wav differ diff --git a/addons/kenney_ui_audio/switch17.wav.import b/addons/kenney_ui_audio/switch17.wav.import new file mode 100644 index 0000000..c88ca5e --- /dev/null +++ b/addons/kenney_ui_audio/switch17.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c0l1cdq5b5npn" +path="res://.godot/imported/switch17.wav-670b57edd62be09830bdd22627c799c5.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch17.wav" +dest_files=["res://.godot/imported/switch17.wav-670b57edd62be09830bdd22627c799c5.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch18.wav b/addons/kenney_ui_audio/switch18.wav new file mode 100644 index 0000000..d6a4c84 Binary files /dev/null and b/addons/kenney_ui_audio/switch18.wav differ diff --git a/addons/kenney_ui_audio/switch18.wav.import b/addons/kenney_ui_audio/switch18.wav.import new file mode 100644 index 0000000..f4e6bd6 --- /dev/null +++ b/addons/kenney_ui_audio/switch18.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dos7071gdsgx5" +path="res://.godot/imported/switch18.wav-65be9ca1cdea7fa5d09ec8896ee33792.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch18.wav" +dest_files=["res://.godot/imported/switch18.wav-65be9ca1cdea7fa5d09ec8896ee33792.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch19.wav b/addons/kenney_ui_audio/switch19.wav new file mode 100644 index 0000000..2b3cec2 Binary files /dev/null and b/addons/kenney_ui_audio/switch19.wav differ diff --git a/addons/kenney_ui_audio/switch19.wav.import b/addons/kenney_ui_audio/switch19.wav.import new file mode 100644 index 0000000..a35de85 --- /dev/null +++ b/addons/kenney_ui_audio/switch19.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bdv77j62j4pwe" +path="res://.godot/imported/switch19.wav-fe04c5ae10fb08b254e642147cdcc822.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch19.wav" +dest_files=["res://.godot/imported/switch19.wav-fe04c5ae10fb08b254e642147cdcc822.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch2.wav b/addons/kenney_ui_audio/switch2.wav new file mode 100644 index 0000000..3e277c8 Binary files /dev/null and b/addons/kenney_ui_audio/switch2.wav differ diff --git a/addons/kenney_ui_audio/switch2.wav.import b/addons/kenney_ui_audio/switch2.wav.import new file mode 100644 index 0000000..b5e72f8 --- /dev/null +++ b/addons/kenney_ui_audio/switch2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bvrxe0vxh3e8p" +path="res://.godot/imported/switch2.wav-ed517ffaa6f14bdd73fd3371bdf79cb7.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch2.wav" +dest_files=["res://.godot/imported/switch2.wav-ed517ffaa6f14bdd73fd3371bdf79cb7.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch20.wav b/addons/kenney_ui_audio/switch20.wav new file mode 100644 index 0000000..08e8527 Binary files /dev/null and b/addons/kenney_ui_audio/switch20.wav differ diff --git a/addons/kenney_ui_audio/switch20.wav.import b/addons/kenney_ui_audio/switch20.wav.import new file mode 100644 index 0000000..692b009 --- /dev/null +++ b/addons/kenney_ui_audio/switch20.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://done74gww38t0" +path="res://.godot/imported/switch20.wav-9636539e81da6e33e01e70300e0359a1.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch20.wav" +dest_files=["res://.godot/imported/switch20.wav-9636539e81da6e33e01e70300e0359a1.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch21.wav b/addons/kenney_ui_audio/switch21.wav new file mode 100644 index 0000000..c9d769a Binary files /dev/null and b/addons/kenney_ui_audio/switch21.wav differ diff --git a/addons/kenney_ui_audio/switch21.wav.import b/addons/kenney_ui_audio/switch21.wav.import new file mode 100644 index 0000000..cc63c0e --- /dev/null +++ b/addons/kenney_ui_audio/switch21.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dlf4xa2hok7k5" +path="res://.godot/imported/switch21.wav-510c5f69909c2b7a8ffa835ff38911bc.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch21.wav" +dest_files=["res://.godot/imported/switch21.wav-510c5f69909c2b7a8ffa835ff38911bc.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch22.wav b/addons/kenney_ui_audio/switch22.wav new file mode 100644 index 0000000..0a852e6 Binary files /dev/null and b/addons/kenney_ui_audio/switch22.wav differ diff --git a/addons/kenney_ui_audio/switch22.wav.import b/addons/kenney_ui_audio/switch22.wav.import new file mode 100644 index 0000000..10e1f53 --- /dev/null +++ b/addons/kenney_ui_audio/switch22.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bq2wj3laeuqev" +path="res://.godot/imported/switch22.wav-3f139a30e3a59e44b1338d53a3ed2db2.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch22.wav" +dest_files=["res://.godot/imported/switch22.wav-3f139a30e3a59e44b1338d53a3ed2db2.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch23.wav b/addons/kenney_ui_audio/switch23.wav new file mode 100644 index 0000000..b854bf4 Binary files /dev/null and b/addons/kenney_ui_audio/switch23.wav differ diff --git a/addons/kenney_ui_audio/switch23.wav.import b/addons/kenney_ui_audio/switch23.wav.import new file mode 100644 index 0000000..e5c265f --- /dev/null +++ b/addons/kenney_ui_audio/switch23.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://fhk13nrud16d" +path="res://.godot/imported/switch23.wav-cbe79ac12494b64dcf8592499fd45943.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch23.wav" +dest_files=["res://.godot/imported/switch23.wav-cbe79ac12494b64dcf8592499fd45943.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch24.wav b/addons/kenney_ui_audio/switch24.wav new file mode 100644 index 0000000..6badffd Binary files /dev/null and b/addons/kenney_ui_audio/switch24.wav differ diff --git a/addons/kenney_ui_audio/switch24.wav.import b/addons/kenney_ui_audio/switch24.wav.import new file mode 100644 index 0000000..b5821e0 --- /dev/null +++ b/addons/kenney_ui_audio/switch24.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://k102cb3r3so6" +path="res://.godot/imported/switch24.wav-d78702457e3037d3e442ffa9f491a233.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch24.wav" +dest_files=["res://.godot/imported/switch24.wav-d78702457e3037d3e442ffa9f491a233.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch25.wav b/addons/kenney_ui_audio/switch25.wav new file mode 100644 index 0000000..289493b Binary files /dev/null and b/addons/kenney_ui_audio/switch25.wav differ diff --git a/addons/kenney_ui_audio/switch25.wav.import b/addons/kenney_ui_audio/switch25.wav.import new file mode 100644 index 0000000..289b2e4 --- /dev/null +++ b/addons/kenney_ui_audio/switch25.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dk0xypj8w53c6" +path="res://.godot/imported/switch25.wav-3084dc0e8799b7c7642353637b8ee6d9.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch25.wav" +dest_files=["res://.godot/imported/switch25.wav-3084dc0e8799b7c7642353637b8ee6d9.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch26.wav b/addons/kenney_ui_audio/switch26.wav new file mode 100644 index 0000000..717539f Binary files /dev/null and b/addons/kenney_ui_audio/switch26.wav differ diff --git a/addons/kenney_ui_audio/switch26.wav.import b/addons/kenney_ui_audio/switch26.wav.import new file mode 100644 index 0000000..3b55587 --- /dev/null +++ b/addons/kenney_ui_audio/switch26.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bqj5ir00eibn5" +path="res://.godot/imported/switch26.wav-d5a7e4e7f2b93b80c57e83e23cfcce44.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch26.wav" +dest_files=["res://.godot/imported/switch26.wav-d5a7e4e7f2b93b80c57e83e23cfcce44.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch27.wav b/addons/kenney_ui_audio/switch27.wav new file mode 100644 index 0000000..c07ecfb Binary files /dev/null and b/addons/kenney_ui_audio/switch27.wav differ diff --git a/addons/kenney_ui_audio/switch27.wav.import b/addons/kenney_ui_audio/switch27.wav.import new file mode 100644 index 0000000..4f0465c --- /dev/null +++ b/addons/kenney_ui_audio/switch27.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://m11etanqcw1j" +path="res://.godot/imported/switch27.wav-8cfb1e1957d61484e98a000b23c8235e.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch27.wav" +dest_files=["res://.godot/imported/switch27.wav-8cfb1e1957d61484e98a000b23c8235e.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch28.wav b/addons/kenney_ui_audio/switch28.wav new file mode 100644 index 0000000..f9cb663 Binary files /dev/null and b/addons/kenney_ui_audio/switch28.wav differ diff --git a/addons/kenney_ui_audio/switch28.wav.import b/addons/kenney_ui_audio/switch28.wav.import new file mode 100644 index 0000000..f3c6e67 --- /dev/null +++ b/addons/kenney_ui_audio/switch28.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c1dawxq8yba0p" +path="res://.godot/imported/switch28.wav-ff2685c2f081f5d35c3851ea3fed5d9d.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch28.wav" +dest_files=["res://.godot/imported/switch28.wav-ff2685c2f081f5d35c3851ea3fed5d9d.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch29.wav b/addons/kenney_ui_audio/switch29.wav new file mode 100644 index 0000000..15a09d9 Binary files /dev/null and b/addons/kenney_ui_audio/switch29.wav differ diff --git a/addons/kenney_ui_audio/switch29.wav.import b/addons/kenney_ui_audio/switch29.wav.import new file mode 100644 index 0000000..66d04ea --- /dev/null +++ b/addons/kenney_ui_audio/switch29.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b82sxkmw3kih4" +path="res://.godot/imported/switch29.wav-a972c4cb7e4b7ecc8feb7d741d7a457a.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch29.wav" +dest_files=["res://.godot/imported/switch29.wav-a972c4cb7e4b7ecc8feb7d741d7a457a.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch3.wav b/addons/kenney_ui_audio/switch3.wav new file mode 100644 index 0000000..3884940 Binary files /dev/null and b/addons/kenney_ui_audio/switch3.wav differ diff --git a/addons/kenney_ui_audio/switch3.wav.import b/addons/kenney_ui_audio/switch3.wav.import new file mode 100644 index 0000000..b69d690 --- /dev/null +++ b/addons/kenney_ui_audio/switch3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bs8npgsvmkoi6" +path="res://.godot/imported/switch3.wav-d5bafaa3cd1d942b879acd4703db9dee.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch3.wav" +dest_files=["res://.godot/imported/switch3.wav-d5bafaa3cd1d942b879acd4703db9dee.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch30.wav b/addons/kenney_ui_audio/switch30.wav new file mode 100644 index 0000000..c6c889d Binary files /dev/null and b/addons/kenney_ui_audio/switch30.wav differ diff --git a/addons/kenney_ui_audio/switch30.wav.import b/addons/kenney_ui_audio/switch30.wav.import new file mode 100644 index 0000000..fe217d3 --- /dev/null +++ b/addons/kenney_ui_audio/switch30.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dokyp5h8t2gk4" +path="res://.godot/imported/switch30.wav-132fce3f6994d6372657ec5f19880428.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch30.wav" +dest_files=["res://.godot/imported/switch30.wav-132fce3f6994d6372657ec5f19880428.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch31.wav b/addons/kenney_ui_audio/switch31.wav new file mode 100644 index 0000000..1c2ed56 Binary files /dev/null and b/addons/kenney_ui_audio/switch31.wav differ diff --git a/addons/kenney_ui_audio/switch31.wav.import b/addons/kenney_ui_audio/switch31.wav.import new file mode 100644 index 0000000..970bf05 --- /dev/null +++ b/addons/kenney_ui_audio/switch31.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dasvl7gtguf2c" +path="res://.godot/imported/switch31.wav-b646841697882c6b050db5f8e3066922.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch31.wav" +dest_files=["res://.godot/imported/switch31.wav-b646841697882c6b050db5f8e3066922.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch32.wav b/addons/kenney_ui_audio/switch32.wav new file mode 100644 index 0000000..9893496 Binary files /dev/null and b/addons/kenney_ui_audio/switch32.wav differ diff --git a/addons/kenney_ui_audio/switch32.wav.import b/addons/kenney_ui_audio/switch32.wav.import new file mode 100644 index 0000000..c40b686 --- /dev/null +++ b/addons/kenney_ui_audio/switch32.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dprnxsh3ygpiq" +path="res://.godot/imported/switch32.wav-87a4efca708b499ed7a5cc66246564fd.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch32.wav" +dest_files=["res://.godot/imported/switch32.wav-87a4efca708b499ed7a5cc66246564fd.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch33.wav b/addons/kenney_ui_audio/switch33.wav new file mode 100644 index 0000000..ec4ceb5 Binary files /dev/null and b/addons/kenney_ui_audio/switch33.wav differ diff --git a/addons/kenney_ui_audio/switch33.wav.import b/addons/kenney_ui_audio/switch33.wav.import new file mode 100644 index 0000000..38cb4d9 --- /dev/null +++ b/addons/kenney_ui_audio/switch33.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bx347wtecy2uc" +path="res://.godot/imported/switch33.wav-bcf4384997bd16df7f641d2a6616d208.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch33.wav" +dest_files=["res://.godot/imported/switch33.wav-bcf4384997bd16df7f641d2a6616d208.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch34.wav b/addons/kenney_ui_audio/switch34.wav new file mode 100644 index 0000000..11b0cd4 Binary files /dev/null and b/addons/kenney_ui_audio/switch34.wav differ diff --git a/addons/kenney_ui_audio/switch34.wav.import b/addons/kenney_ui_audio/switch34.wav.import new file mode 100644 index 0000000..ba48210 --- /dev/null +++ b/addons/kenney_ui_audio/switch34.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dqflr2jdoxd4i" +path="res://.godot/imported/switch34.wav-f47880fa48557cce1e572bb5b52915d6.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch34.wav" +dest_files=["res://.godot/imported/switch34.wav-f47880fa48557cce1e572bb5b52915d6.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch35.wav b/addons/kenney_ui_audio/switch35.wav new file mode 100644 index 0000000..f927742 Binary files /dev/null and b/addons/kenney_ui_audio/switch35.wav differ diff --git a/addons/kenney_ui_audio/switch35.wav.import b/addons/kenney_ui_audio/switch35.wav.import new file mode 100644 index 0000000..86656d2 --- /dev/null +++ b/addons/kenney_ui_audio/switch35.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ctn16yy6bop8x" +path="res://.godot/imported/switch35.wav-d841ce506c4462a1c2633bee4d15d14c.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch35.wav" +dest_files=["res://.godot/imported/switch35.wav-d841ce506c4462a1c2633bee4d15d14c.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch36.wav b/addons/kenney_ui_audio/switch36.wav new file mode 100644 index 0000000..d234dc7 Binary files /dev/null and b/addons/kenney_ui_audio/switch36.wav differ diff --git a/addons/kenney_ui_audio/switch36.wav.import b/addons/kenney_ui_audio/switch36.wav.import new file mode 100644 index 0000000..1c651b0 --- /dev/null +++ b/addons/kenney_ui_audio/switch36.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bo32grrhgb72u" +path="res://.godot/imported/switch36.wav-d107217da69ab9e5e1b40a00fae795d0.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch36.wav" +dest_files=["res://.godot/imported/switch36.wav-d107217da69ab9e5e1b40a00fae795d0.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch37.wav b/addons/kenney_ui_audio/switch37.wav new file mode 100644 index 0000000..fdc2e3b Binary files /dev/null and b/addons/kenney_ui_audio/switch37.wav differ diff --git a/addons/kenney_ui_audio/switch37.wav.import b/addons/kenney_ui_audio/switch37.wav.import new file mode 100644 index 0000000..39ef28d --- /dev/null +++ b/addons/kenney_ui_audio/switch37.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bd1cdot060eue" +path="res://.godot/imported/switch37.wav-b1ce5e7bf8452a0f3ba90bd01994ff64.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch37.wav" +dest_files=["res://.godot/imported/switch37.wav-b1ce5e7bf8452a0f3ba90bd01994ff64.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch38.wav b/addons/kenney_ui_audio/switch38.wav new file mode 100644 index 0000000..a6fa556 Binary files /dev/null and b/addons/kenney_ui_audio/switch38.wav differ diff --git a/addons/kenney_ui_audio/switch38.wav.import b/addons/kenney_ui_audio/switch38.wav.import new file mode 100644 index 0000000..6c9dd6c --- /dev/null +++ b/addons/kenney_ui_audio/switch38.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bgpu3pqh7bhde" +path="res://.godot/imported/switch38.wav-23de1c6fb112e7cb3c900eaa9147ac49.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch38.wav" +dest_files=["res://.godot/imported/switch38.wav-23de1c6fb112e7cb3c900eaa9147ac49.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch4.wav b/addons/kenney_ui_audio/switch4.wav new file mode 100644 index 0000000..6d3dd95 Binary files /dev/null and b/addons/kenney_ui_audio/switch4.wav differ diff --git a/addons/kenney_ui_audio/switch4.wav.import b/addons/kenney_ui_audio/switch4.wav.import new file mode 100644 index 0000000..0684745 --- /dev/null +++ b/addons/kenney_ui_audio/switch4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dmk3p851dor3o" +path="res://.godot/imported/switch4.wav-7de5e47937a9dde14888f238c7ab9640.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch4.wav" +dest_files=["res://.godot/imported/switch4.wav-7de5e47937a9dde14888f238c7ab9640.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch5.wav b/addons/kenney_ui_audio/switch5.wav new file mode 100644 index 0000000..5c10d5a Binary files /dev/null and b/addons/kenney_ui_audio/switch5.wav differ diff --git a/addons/kenney_ui_audio/switch5.wav.import b/addons/kenney_ui_audio/switch5.wav.import new file mode 100644 index 0000000..1d78de9 --- /dev/null +++ b/addons/kenney_ui_audio/switch5.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d1dyaataghyg3" +path="res://.godot/imported/switch5.wav-cde6df9687fd564b317cc5ebc087ecbf.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch5.wav" +dest_files=["res://.godot/imported/switch5.wav-cde6df9687fd564b317cc5ebc087ecbf.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch6.wav b/addons/kenney_ui_audio/switch6.wav new file mode 100644 index 0000000..15fe622 Binary files /dev/null and b/addons/kenney_ui_audio/switch6.wav differ diff --git a/addons/kenney_ui_audio/switch6.wav.import b/addons/kenney_ui_audio/switch6.wav.import new file mode 100644 index 0000000..69536e6 --- /dev/null +++ b/addons/kenney_ui_audio/switch6.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://lmb5y3ls4d5v" +path="res://.godot/imported/switch6.wav-a4b59034392332eb5302bd3735556355.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch6.wav" +dest_files=["res://.godot/imported/switch6.wav-a4b59034392332eb5302bd3735556355.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch7.wav b/addons/kenney_ui_audio/switch7.wav new file mode 100644 index 0000000..8de4d1a Binary files /dev/null and b/addons/kenney_ui_audio/switch7.wav differ diff --git a/addons/kenney_ui_audio/switch7.wav.import b/addons/kenney_ui_audio/switch7.wav.import new file mode 100644 index 0000000..8fd37a5 --- /dev/null +++ b/addons/kenney_ui_audio/switch7.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dtoarffcpv8vt" +path="res://.godot/imported/switch7.wav-02e2bbae350cb11bc3ea2d343217e13b.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch7.wav" +dest_files=["res://.godot/imported/switch7.wav-02e2bbae350cb11bc3ea2d343217e13b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch8.wav b/addons/kenney_ui_audio/switch8.wav new file mode 100644 index 0000000..edda00d Binary files /dev/null and b/addons/kenney_ui_audio/switch8.wav differ diff --git a/addons/kenney_ui_audio/switch8.wav.import b/addons/kenney_ui_audio/switch8.wav.import new file mode 100644 index 0000000..1274c3f --- /dev/null +++ b/addons/kenney_ui_audio/switch8.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b3bgtc61kp187" +path="res://.godot/imported/switch8.wav-7e5b32100a1d10ecb6cbac4b30a3a642.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch8.wav" +dest_files=["res://.godot/imported/switch8.wav-7e5b32100a1d10ecb6cbac4b30a3a642.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/kenney_ui_audio/switch9.wav b/addons/kenney_ui_audio/switch9.wav new file mode 100644 index 0000000..8ac28d3 Binary files /dev/null and b/addons/kenney_ui_audio/switch9.wav differ diff --git a/addons/kenney_ui_audio/switch9.wav.import b/addons/kenney_ui_audio/switch9.wav.import new file mode 100644 index 0000000..c0279f6 --- /dev/null +++ b/addons/kenney_ui_audio/switch9.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://s2ibkwdqgl83" +path="res://.godot/imported/switch9.wav-43d95b0fd728d6243dfa0266b188b1c4.sample" + +[deps] + +source_file="res://addons/kenney_ui_audio/switch9.wav" +dest_files=["res://.godot/imported/switch9.wav-43d95b0fd728d6243dfa0266b188b1c4.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/addons/simplelicense/GUI/LicenseGUI.tscn b/addons/simplelicense/GUI/LicenseGUI.tscn new file mode 100644 index 0000000..f5eefc8 --- /dev/null +++ b/addons/simplelicense/GUI/LicenseGUI.tscn @@ -0,0 +1,111 @@ +[gd_scene load_steps=3 format=3 uid="uid://bbhv8iqdbkqbt"] + +[ext_resource type="Script" path="res://scripts/license_gui.gd" id="1_esldu"] +[ext_resource type="Script" path="res://addons/simplelicense/api/LicenseManager.gd" id="2_cpb2k"] + +[node name="LicenseGUI" type="Control"] +custom_minimum_size = Vector2(256, 256) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_esldu") +load_locations = Array[String](["res://licenses", "res://addons/simplelicense/mod_example/licenses/"]) +export_locations = Array[String](["user://licenses/game/", "user://licenses/mods/mod_1/"]) + +[node name="LicenseManager" type="Node" parent="."] +script = ExtResource("2_cpb2k") + +[node name="background" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Label" type="Label" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.381076 +anchor_right = 0.461806 +anchor_bottom = 0.0401235 +offset_left = 3.05176e-05 +grow_horizontal = 2 +text = "License Info" +metadata/_edit_use_anchors_ = true + +[node name="Tree" type="Tree" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.00694444 +anchor_top = 0.0462963 +anchor_right = 0.404514 +anchor_bottom = 0.987654 +grow_vertical = 2 +size_flags_horizontal = 2 +hide_root = true +metadata/_edit_use_anchors_ = true + +[node name="Text" type="TextEdit" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.434028 +anchor_top = 0.0462963 +anchor_right = 0.993056 +anchor_bottom = 0.987654 +offset_left = -8.0 +grow_horizontal = 0 +grow_vertical = 2 +size_flags_horizontal = 3 +editable = false +scroll_smooth = true +minimap_draw = true +metadata/_edit_use_anchors_ = true + +[node name="btn_open_data_dir" type="Button" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.585069 +anchor_top = 0.00308642 +anchor_right = 0.696181 +anchor_bottom = 0.0416667 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 12 +text = "Open Data Directory" +metadata/_edit_use_anchors_ = true + +[node name="btn_save_licenses" type="Button" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.491319 +anchor_top = 0.00308642 +anchor_right = 0.56684 +anchor_bottom = 0.0416667 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 12 +text = "Save Licenses" +metadata/_edit_use_anchors_ = true + +[node name="op_locations" type="OptionButton" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.00694444 +anchor_top = 0.00308642 +anchor_right = 0.172743 +anchor_bottom = 0.0416667 +theme_override_font_sizes/font_size = 12 +item_count = 2 +popup/item_0/text = "a" +popup/item_0/id = 0 +popup/item_1/text = "b" +popup/item_1/id = 1 +metadata/_edit_use_anchors_ = true + +[connection signal="item_activated" from="Tree" to="." method="_on_tree_item_activated"] +[connection signal="item_selected" from="Tree" to="." method="_on_tree_item_selected"] +[connection signal="pressed" from="btn_open_data_dir" to="." method="_on_btn_open_data_dir_pressed"] +[connection signal="pressed" from="btn_save_licenses" to="." method="_on_button_pressed"] +[connection signal="item_selected" from="op_locations" to="." method="_on_op_locations_item_selected"] diff --git a/addons/simplelicense/Icon.png b/addons/simplelicense/Icon.png new file mode 100644 index 0000000..d4bdb81 Binary files /dev/null and b/addons/simplelicense/Icon.png differ diff --git a/addons/simplelicense/Icon.png.import b/addons/simplelicense/Icon.png.import new file mode 100644 index 0000000..8c753af --- /dev/null +++ b/addons/simplelicense/Icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duvmbh55cyvev" +path="res://.godot/imported/Icon.png-451064bd72ea26ed7eb00aedd926556f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/simplelicense/Icon.png" +dest_files=["res://.godot/imported/Icon.png-451064bd72ea26ed7eb00aedd926556f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/simplelicense/Icon.svg b/addons/simplelicense/Icon.svg new file mode 100644 index 0000000..67fe3dd --- /dev/null +++ b/addons/simplelicense/Icon.svg @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/simplelicense/Icon.svg.import b/addons/simplelicense/Icon.svg.import new file mode 100644 index 0000000..7ac00e5 --- /dev/null +++ b/addons/simplelicense/Icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnr20t153it5i" +path="res://.godot/imported/Icon.svg-62b5bc5b7872f9c089f3b98f0084a03c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/simplelicense/Icon.svg" +dest_files=["res://.godot/imported/Icon.svg-62b5bc5b7872f9c089f3b98f0084a03c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/simplelicense/LICENSE.txt b/addons/simplelicense/LICENSE.txt new file mode 100644 index 0000000..52aedfa --- /dev/null +++ b/addons/simplelicense/LICENSE.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/addons/simplelicense/README.txt b/addons/simplelicense/README.txt new file mode 100644 index 0000000..82fdead --- /dev/null +++ b/addons/simplelicense/README.txt @@ -0,0 +1,37 @@ +A simple plugin, to make dealing with licensing simple. +Files: ./addons/simplelicense/* +License: CC0-1.0 + +Developed in Godot version: v4.0.beta.custom_build [166df0896] + +Quick Example: (A License Viewer Scene, that you can also drop into one of your game scenes) + Run the Scene at + res://addons/simplelicense/GUI/LicenseGUI.tscn + + look around, then + click on the "open data directory" button + then click on the "save licenses" button + and watch the data directory populate with license files + + +Quick Start: + 1. Create a "LicenseLink" Resource file inside the + res://licenses/license_links/ + + 2. Click on the the new Resource file, and try it out + There are docs on how to use it, so just F1 + LicenseLink, to find out more + + 3. Load license information + Create an instance of "LicenseManager" either in code or by adding the node to the scene + then call "load_license_information" on the LicenseManager + + 4. Export License information + call "export" function on the LicenseManager + it will populate the "user://" directory with your license files + one combined "COPYRIGHT.txt" file + and individual copyright files into "user://licenses/.txt". + The license text will be formatted in the SPDX standard. + It's the way the Godot Engine does it. + in the Godot Editor: Help -> About Godot -> Third-party Licenses + There is more you can do, just visit the docs! + (Like support for loading mod's license information!) diff --git a/addons/simplelicense/api/License.gd b/addons/simplelicense/api/License.gd new file mode 100644 index 0000000..01b4a51 --- /dev/null +++ b/addons/simplelicense/api/License.gd @@ -0,0 +1,78 @@ +class_name License +extends Resource +## Holds AUTO GENERATED License information + +## SPDX-License-Identifier or similar to it. CASE SENSITIVE[br] +## Like "CC0-1.0"[br] +## See [url=https://spdx.org/licenses/]SPDX Identifier List[/url] +var identifier: String = "" + +## The License's Name. [br] +## Like "CC0 1.0 Universal" +var name: String = "" + +## License Terms; The text of a license file +var terms: String = "" + +## Returns a string containing this license's information, formatted to [url=https://spdx.dev/resources/use/]SPDX Standards[/url] +func to_formatted_string() -> String: + return "License: {identifier}\n{terms}".format({ + 'identifier': identifier, + 'terms': _add_line_padding(terms) + }) + + +# wouldn't recomend using this, unless you know what your doing +# but if you do, this loads and parses all licenses (.txt files) in a directory, +# plus Godot's built-in Licenses +static func _load_licenses_in(dir: String): + var dict = {} + + # get game licenses + var names = DirAccess.get_files_at(dir) + if names.size() == 0: + print_verbose("\nSimple License: No License files found in dir\n", dir, "\nif you have no license files there, then this can be ignored\n") + for _name in names: + var ext = _name.rsplit('.', false, 1) + if ext.size() == 0 or ext[-1] != 'txt': + continue + + var l = new() + l.identifier = _name.split('.', false, 1)[0] + l.name = l.identifier + l.terms = FileAccess.open(dir.path_join(_name), FileAccess.READ).get_as_text() + dict[l.identifier] = l + + # get licenses built into the Godot Engine + var tmp = Engine.get_license_info() + for id in tmp: + if dict.has(id): + continue + + var l = new() + l.identifier = id + l.terms = tmp[id] + dict[id] = l + + return dict + + +# this is for formatting individual lines accoring to SPDX standards +static func _add_line_padding(combined_lines: String, padding: String = " ") -> String: + if combined_lines.is_empty(): + return combined_lines + + var lines = combined_lines.split("\n") + + var s = "" + for i in len(lines): + if lines[i].is_empty() or lines[i] == "\n": + if i+1 < len(lines): + s += padding + "." + "\n" + else: + s += '\n' + else: + s += padding + lines[i] + "\n" + s = s.strip_edges(false) + s += '\n' + return s diff --git a/addons/simplelicense/api/LicenseLink.gd b/addons/simplelicense/api/LicenseLink.gd new file mode 100644 index 0000000..e542978 --- /dev/null +++ b/addons/simplelicense/api/LicenseLink.gd @@ -0,0 +1,178 @@ +class_name LicenseLink +extends Resource + +## Files that are under this license [br] +## [color=red]WARNING[/color] DO NOT put in any file that Godot Cannot load, via Resource.load() [br] +## or it will prevent the game from launching. files like .txt .csg etc +@export var link_files: Array[Resource] + +## Directories that are under this license [br] +## The given file's Parent Directory will be tracked [br] +## [color=red]WARNING[/color] DO NOT put in any file that Godot Cannot load, via Resource.load() [br] +## or it will prevent the game from launching. files like .txt .csg etc +@export var link_dirs: Array[Resource] + +## Files that are under this license [br] +## Note: These paths are [b]NOT[/b] automatically tracked, [br] +## you will have to, manually keep these paths up to date +@export var link_paths: Array + +## Example: Godot_Icon, Custom Font Name, Your Games Name, etc +@export var componet_name: String = "" + +## Gets included in [method to_formatted_string] right after [member componet_name] [br] +## as part of the "Comment:" Section of the SPDX format +@export var extra: String = "" + +## SPDX-License-Identifier or similar to it. CASE SENSITIVE[br] +## Like "CC0-1.0" or more complex entries like [br] +## "CC0-1.0 or MIT" [br] +## "CC0-1.0 and MIT" [br] +## See [url=https://spdx.org/licenses/]SPDX Identifier List[/url] +@export var license_identifier: String = "" : set = _set_identifier + +## who and when was the copyright was created [br] +## example [br] +## 2022, John Doe [br] +## (next entry) [br] +## 2022-2023, Jim Stirling, Corp xyz [br] +@export var copyright: Array[String] + +var license: License + +## Unlike [member license_identifier] this contains [b]ONLY[/b] the identifiers [br] +var license_identifiers: Array[String] + +## Either "Godot Engine" or "Game" [br] +## This value is AUTO GENERATED [br] +## [b]DON'T SET THIS VALUE MANUALLY[/b], IT CAN BREAK THINGS +var component_of: String = "" + + +func _init() -> void: + _set_identifier(license_identifier) + + +func _set_identifier(v: String): + license_identifier = v + + var tmp = v.replace(' and ', '!break!').replace(' or ', '!break!').split('!break!', false) + for x in tmp: + license_identifiers.append(x) + + +func _to_string() -> String: + return self.to_formatted_string() + +## Returns a string containing this link's information, formatted to [url=https://spdx.dev/resources/use/]SPDX Standards[/url] +func to_formatted_string(hide_files: bool = false): + var _files = "" + if not hide_files: + for x in link_files: + _files += x.resource_path.replace("res://", " ./").strip_edges() + "\n" + for x in link_dirs: + _files += ( + x.resource_path.replace("res://", " ./").rsplit("/", false, 1)[0].strip_edges() + + "/*\n" + ) + for x in link_paths: + _files += x.replace("res://", " ./").strip_edges() + "\n" + _files = _files.strip_edges() + + var _comment = "" + if not componet_name.is_empty(): + _comment += componet_name + if not extra.is_empty(): + _comment += "\n" + if not extra.is_empty(): + _comment += extra + + return "Files:{files}\nComment:{comment}\nCopyright:{copyright}\nLicense:{identifier}\n".format( + { + "files": _add_line_padding(_files, " "), + "comment": _add_line_padding(_comment, " "), + "copyright": _add_line_padding("\n".join(copyright), " "), + "identifier": _add_line_padding(license_identifier, " "), + } + ) + + +# wouldn't recomend using this, unless you know what your doing +# but if you do, this loads and parses all links (LicenseLink Resource files) in a directory, +# plus Godot's built-in Licenses +# +# exclude engine: excludes loading Godot's built-in license information +# this is for mods, in which the main game will have already shown the Godot Engine's Licensing +static func _load_links_in(dir: String, exclude_engine: bool = false): + var dict = { + 'array': [], + 'by_identifier': {}, + 'by_parent': {}, + } + + if not DirAccess.dir_exists_absolute(dir): + printerr('Simple License: LicenseLinks directory is missing! ', dir) + return dict + + + # get Game license links + var names = DirAccess.get_files_at(dir) + if len(names) == 0: + print_verbose("\nSimple License: No LicenseLinks found in dir\n", dir, "\nif you have no LicenseLinks there, then this can be ignored\n") + for name in names: + name = name.replace('.remap', '') + var path = dir.path_join(name) + var res = ResourceLoader.load(path) + if res is Resource and res.get("copyright") != null: + if res.component_of.is_empty(): + res.component_of = "Game" + + dict.array.append(res) + + dict.by_identifier[res.license_identifier] = res + + if not dict.by_parent.has(res.component_of): + dict.by_parent[res.component_of] = {} + dict.by_parent[res.component_of][res.license_identifier] = res + + # Get Engine license links + if not exclude_engine: + for a in Engine.get_copyright_info(): + var l = new() + l.componet_name = a.name + l.component_of = "Godot Engine" + l.link_paths = a.parts[0].files + + l.license_identifier = a.parts[0].license + l.copyright.append_array(a.parts[0].copyright) + + dict.array.append(l) + + dict.by_identifier[l.license_identifier] = l + + if not dict.by_parent.has(l.component_of): + dict.by_parent[l.component_of] = {} + + if not dict.by_parent[l.component_of].has(l.license_identifier): + dict.by_parent[l.component_of][l.license_identifier] = l + + return dict + +# this is for formatting individual lines accoring to SPDX standards +static func _add_line_padding(combined_lines: String, padding: String) -> String: + if combined_lines.is_empty(): + return combined_lines + + var lines = combined_lines.split("\n") + + var s = "" + for i in len(lines): + if lines[i].is_empty() or lines[i] == "\n": + if i+1 < len(lines): + s += padding + "." + "\n" + else: + s += '\n' + else: + s += padding + lines[i] + "\n" + s = s.strip_edges(false) + return s diff --git a/addons/simplelicense/api/LicenseManager.gd b/addons/simplelicense/api/LicenseManager.gd new file mode 100644 index 0000000..612b2fe --- /dev/null +++ b/addons/simplelicense/api/LicenseManager.gd @@ -0,0 +1,121 @@ +class_name LicenseManager +extends Node + +## loads license information from this directory and the sub-directory "license_links" +@export var load_dir: String = "res://licenses" + +## export license information to this directory and the sub-directory "licenses" +@export var export_dir: String = "user://" + +## This disables loading Godot's built-in license information [br] +## this is for mods, in which the main game will have already shown the Godot's built-in Licensing +@export var exclude_engine: bool = false + +## contains all loaded [License]s [br] +## key = identifier [br] +## value = [License] +var licenses := {} + +## contains all loaded [LicenseLink]s [br] +## with searching in mind [br] +## "array" [] [br] +## "by_identifier" {} license identifier [br] +## "by_parent" {} parent component name [br] +var license_links := { + 'array': [], + 'by_identifier': {}, + 'by_parent': {}, +} + + +## Loads license information from [member load_dir] [br] +func load_license_information(): + licenses.clear() + license_links.array.clear() + license_links.by_identifier.clear() + license_links.by_parent.clear() + + if not DirAccess.dir_exists_absolute(load_dir): + printerr("Failed to find license directory ", load_dir) + return + + licenses = License._load_licenses_in(load_dir) + if licenses.has('Expat') and not licenses.has('MIT'): + var l = licenses['Expat'].duplicate() as License + l.identifier = 'MIT' + licenses['MIT'] = l + + license_links = LicenseLink._load_links_in(load_dir.path_join('license_links'), exclude_engine) + + +## Returns a single string "file", that is formatted in the SPDX Standard [br] +## that contains all licensing information, contained in this instance, [br] +## if only_links, then the returned data will omit the licensing term files +func get_combined_copyright(only_links: bool = false) -> String: + var lines = "" + + var used_licenses = {} + + # Links + for link in license_links.array: + if link is LicenseLink: + lines += link.to_formatted_string(link.component_of == 'Godot Engine') + lines += '\n' + used_licenses.merge(get_all_valid_licenses(link)) + + lines += '\n\n' + + if only_links: + return lines + + # License Terms + var values = used_licenses.values() + for i in len(values): + if i+1 < len(values): + lines += values[i].to_formatted_string() + '\n' + else: + lines += values[i].to_formatted_string() + + return lines + +## Returns all licenses that are "valid"/exist [br] +## Sometimes license files are missing, or Identifiers are incorrectly spelled, this helps with that. +func get_all_valid_licenses(link: LicenseLink) -> Dictionary: + var d = {} + for x in link.license_identifiers: + if licenses.has(x): + d[x] = licenses[x] + return d + +## export all license information to [member export_dir] and the sub-directory "licenses" +func export(directory: String = ""): + if directory.is_empty(): + directory = export_dir + + var licenses_path = directory.path_join('licenses') + if not DirAccess.dir_exists_absolute(licenses_path): + DirAccess.make_dir_recursive_absolute(licenses_path) + + # Export the combined license file + var f = FileAccess.open(directory.path_join('COPYRIGHT.txt'), FileAccess.WRITE) + if f is FileAccess: + f.store_string(self.get_combined_copyright()) + + # Export the slim license file + f = FileAccess.open(directory.path_join('COPYRIGHT_SLIM.txt'), FileAccess.WRITE) + if f is FileAccess: + f.store_string(self.get_combined_copyright(true)) + + + # Export the individual license files + + var used = {} + for i in license_links.array.size(): + var license = license_links.array[i] as LicenseLink + var ids = self.get_all_valid_licenses(license) + used.merge(ids) + + for id in ids: + var license_path = licenses_path.path_join(id)+'.txt' + f = FileAccess.open(license_path, FileAccess.WRITE) + f.store_string(licenses[id].to_formatted_string()) diff --git a/addons/simplelicense/mod_example/licenses/license_links/mod_1_license_link.tres b/addons/simplelicense/mod_example/licenses/license_links/mod_1_license_link.tres new file mode 100644 index 0000000..c1bcb89 --- /dev/null +++ b/addons/simplelicense/mod_example/licenses/license_links/mod_1_license_link.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="LicenseLink" load_steps=3 format=3 uid="uid://ch5muqo430mw"] + +[ext_resource type="Script" path="res://addons/simplelicense/mod_example/mod_1.gd" id="1_3n7mw"] +[ext_resource type="Script" path="res://addons/simplelicense/api/LicenseLink.gd" id="1_gufc2"] + +[resource] +script = ExtResource("1_gufc2") +link_files = Array[Resource]([]) +link_dirs = Array[Resource]([ExtResource("1_3n7mw")]) +link_paths = [] +componet_name = "Mod 1" +extra = "extra info shown in the comment section of the link text" +license_identifier = "mod_1_license_identifier" +copyright = Array[String](["copyright year, (comma) name, (comma) company name"]) diff --git a/addons/simplelicense/mod_example/licenses/mod_1_license_identifier.txt b/addons/simplelicense/mod_example/licenses/mod_1_license_identifier.txt new file mode 100644 index 0000000..057df88 --- /dev/null +++ b/addons/simplelicense/mod_example/licenses/mod_1_license_identifier.txt @@ -0,0 +1,15 @@ +This is an example of the custom license terms for Mod_1 + +So like + +MIT LICENSE TERMS +... +.. +. + +or + +CC0 1.0 LICENSE TERMS +... +.. +. diff --git a/addons/simplelicense/mod_example/mod_1.gd b/addons/simplelicense/mod_example/mod_1.gd new file mode 100644 index 0000000..61510e1 --- /dev/null +++ b/addons/simplelicense/mod_example/mod_1.gd @@ -0,0 +1 @@ +extends Node diff --git a/addons/simplelicense/plugin.cfg b/addons/simplelicense/plugin.cfg new file mode 100644 index 0000000..ab65760 --- /dev/null +++ b/addons/simplelicense/plugin.cfg @@ -0,0 +1,9 @@ +[plugin] + +name="SimpleLicense" +description="A simple license managment plugin. + +Licensed under: CC0-1.0" +author="GradyTheDev" +version="1.1.2" +script="plugin.gd" diff --git a/addons/simplelicense/plugin.gd b/addons/simplelicense/plugin.gd new file mode 100644 index 0000000..a24a862 --- /dev/null +++ b/addons/simplelicense/plugin.gd @@ -0,0 +1,12 @@ +@tool +extends EditorPlugin + + +func _enter_tree() -> void: + # Initialization of the plugin goes here + pass + + +func _exit_tree() -> void: + # Clean-up of the plugin goes here. + pass diff --git a/doc/.gdignore b/addons/simplelicense/screenshots/.gdignore similarity index 100% rename from doc/.gdignore rename to addons/simplelicense/screenshots/.gdignore diff --git a/addons/simplelicense/screenshots/Example.png b/addons/simplelicense/screenshots/Example.png new file mode 100644 index 0000000..6bc010f Binary files /dev/null and b/addons/simplelicense/screenshots/Example.png differ diff --git a/addons/yet_another_behavior_tree/LICENSE.md b/addons/yet_another_behavior_tree/LICENSE.md new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/addons/yet_another_behavior_tree/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/addons/yet_another_behavior_tree/plugin.cfg b/addons/yet_another_behavior_tree/plugin.cfg new file mode 100644 index 0000000..269d32a --- /dev/null +++ b/addons/yet_another_behavior_tree/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Yet Another Behavior Tree" +description="A Behavior Tree implementation for Godot Engine" +author="Adrien Quillet" +version="3.0.0" +script="yet_another_behavior_tree.gd" diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/Icons.pdn b/addons/yet_another_behavior_tree/src/Assets/Icons/Icons.pdn new file mode 100644 index 0000000..22a75da Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/Icons.pdn differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png new file mode 100644 index 0000000..c8a9c0b Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png.import new file mode 100644 index 0000000..536efe2 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b48sosvxi4n24" +path="res://.godot/imported/btaction.png-18977c497a76704723d083978b2ea595.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png" +dest_files=["res://.godot/imported/btaction.png-18977c497a76704723d083978b2ea595.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png new file mode 100644 index 0000000..bfdc4c0 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png.import new file mode 100644 index 0000000..f3b65be --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbnehk2kgxha0" +path="res://.godot/imported/btactionblackboarddelete.png-e03a9a160a95593083f9e35e81bdc103.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png" +dest_files=["res://.godot/imported/btactionblackboarddelete.png-e03a9a160a95593083f9e35e81bdc103.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png new file mode 100644 index 0000000..6978498 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png.import new file mode 100644 index 0000000..54485a4 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://boyttypw3logy" +path="res://.godot/imported/btactionblackboardset.png-1278deabaaedde513ea46a9a4bb621bb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png" +dest_files=["res://.godot/imported/btactionblackboardset.png-1278deabaaedde513ea46a9a4bb621bb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png new file mode 100644 index 0000000..b9a8084 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png.import new file mode 100644 index 0000000..37275a9 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2oj3rjstv2l6" +path="res://.godot/imported/btactioncallable.png-8ff3e8c57248454d9afe7b8c14b8034f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png" +dest_files=["res://.godot/imported/btactioncallable.png-8ff3e8c57248454d9afe7b8c14b8034f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png new file mode 100644 index 0000000..b120281 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png.import new file mode 100644 index 0000000..848abfd --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ct3k7bwcr4n23" +path="res://.godot/imported/btactionwait.png-35eefe67990a95ed2449e53d56e2cf8f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png" +dest_files=["res://.godot/imported/btactionwait.png-35eefe67990a95ed2449e53d56e2cf8f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png new file mode 100644 index 0000000..49cfc76 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png.import new file mode 100644 index 0000000..915becb --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bc3t7dlq5ojd7" +path="res://.godot/imported/btblackboard.png-7f733cee4dbff616004368a725149731.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png" +dest_files=["res://.godot/imported/btblackboard.png-7f733cee4dbff616004368a725149731.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png new file mode 100644 index 0000000..0e938f2 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png.import new file mode 100644 index 0000000..55f80a8 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://61mky8di67wd" +path="res://.godot/imported/btcomposite.png-e026d4d004e93322dbcd1e6f926f41a2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png" +dest_files=["res://.godot/imported/btcomposite.png-e026d4d004e93322dbcd1e6f926f41a2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png new file mode 100644 index 0000000..0cca0b8 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png.import new file mode 100644 index 0000000..8b5934a --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d30ihyblas1o0" +path="res://.godot/imported/btcondition.png-afc407604bdfe2e82f2cbf0d2c34ed27.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png" +dest_files=["res://.godot/imported/btcondition.png-afc407604bdfe2e82f2cbf0d2c34ed27.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png new file mode 100644 index 0000000..3462a2d Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png.import new file mode 100644 index 0000000..6f7ad32 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4q7fnl5uons7" +path="res://.godot/imported/btconditionblackboardkeyexists.png-6b1c537ccdd672a561e7966389cda13e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png" +dest_files=["res://.godot/imported/btconditionblackboardkeyexists.png-6b1c537ccdd672a561e7966389cda13e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png new file mode 100644 index 0000000..72e8ac2 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png.import new file mode 100644 index 0000000..4bddb36 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fcjo6te2i4fh" +path="res://.godot/imported/btconditionblackboardvaluescomparison.png-eecd4feaf86eb841c950cbbeb86bd20e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png" +dest_files=["res://.godot/imported/btconditionblackboardvaluescomparison.png-eecd4feaf86eb841c950cbbeb86bd20e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png new file mode 100644 index 0000000..918fb1a Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png.import new file mode 100644 index 0000000..df5516d --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://y6usgtpm8654" +path="res://.godot/imported/btconditioncallable.png-536cf1db6a6b7ab4d372e700c9ec5b2a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png" +dest_files=["res://.godot/imported/btconditioncallable.png-536cf1db6a6b7ab4d372e700c9ec5b2a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png new file mode 100644 index 0000000..aed229f Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png.import new file mode 100644 index 0000000..71f4e9c --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmwqhdcyhptro" +path="res://.godot/imported/btdecorator.png-8fdc93bf956127379273d9a2949c9c1c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png" +dest_files=["res://.godot/imported/btdecorator.png-8fdc93bf956127379273d9a2949c9c1c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png new file mode 100644 index 0000000..f688508 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png.import new file mode 100644 index 0000000..37fc346 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c73l5rvxyrnda" +path="res://.godot/imported/btfailure.png-43c62fa29ae4a153c528e033a8bbecc9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png" +dest_files=["res://.godot/imported/btfailure.png-43c62fa29ae4a153c528e033a8bbecc9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png new file mode 100644 index 0000000..de30df7 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png.import new file mode 100644 index 0000000..229d611 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gutmaw46jlyh" +path="res://.godot/imported/btinverter.png-2f7d6a7358d40fcfcaf67b8a6acea047.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png" +dest_files=["res://.godot/imported/btinverter.png-2f7d6a7358d40fcfcaf67b8a6acea047.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png new file mode 100644 index 0000000..f22f9a1 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png.import new file mode 100644 index 0000000..a7544ac --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gxdluh7wjomk" +path="res://.godot/imported/btleaf.png-c2431b3a96122c6dc535e0b78c164efc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png" +dest_files=["res://.godot/imported/btleaf.png-c2431b3a96122c6dc535e0b78c164efc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png new file mode 100644 index 0000000..2ba3769 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png.import new file mode 100644 index 0000000..ad6ebfb --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byk2pkxf1m2xm" +path="res://.godot/imported/btlimiter.png-4154342ba1ecd7c753485e0c1895d99d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png" +dest_files=["res://.godot/imported/btlimiter.png-4154342ba1ecd7c753485e0c1895d99d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png new file mode 100644 index 0000000..7b10b33 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png.import new file mode 100644 index 0000000..1969413 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://sccepp5a5goa" +path="res://.godot/imported/btnode.png-3ebad094cfaf4e989cef065b27b78174.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png" +dest_files=["res://.godot/imported/btnode.png-3ebad094cfaf4e989cef065b27b78174.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png new file mode 100644 index 0000000..ca32a9c Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png.import new file mode 100644 index 0000000..f5aeff4 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://i8yclvjdd2po" +path="res://.godot/imported/btparallel.png-72c2892f41b80e22bfa4396abf59a1a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png" +dest_files=["res://.godot/imported/btparallel.png-72c2892f41b80e22bfa4396abf59a1a3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png new file mode 100644 index 0000000..08d368b Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png.import new file mode 100644 index 0000000..fcd9245 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cj1bxkdykjv23" +path="res://.godot/imported/btrandom.png-0f3e4c1202cc1fd7fd32f36ce482ef97.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png" +dest_files=["res://.godot/imported/btrandom.png-0f3e4c1202cc1fd7fd32f36ce482ef97.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png new file mode 100644 index 0000000..d570781 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png.import new file mode 100644 index 0000000..707a69c --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b3s6eyhvmsmca" +path="res://.godot/imported/btrandomselector.png-5bbaa6b1d149c5357046de0f8d6b7707.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png" +dest_files=["res://.godot/imported/btrandomselector.png-5bbaa6b1d149c5357046de0f8d6b7707.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png new file mode 100644 index 0000000..0aa49d2 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png.import new file mode 100644 index 0000000..4210998 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtc18hhykvswh" +path="res://.godot/imported/btrepeatuntil.png-b92f22528a4b73d0ca2d27142e092367.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png" +dest_files=["res://.godot/imported/btrepeatuntil.png-b92f22528a4b73d0ca2d27142e092367.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png new file mode 100644 index 0000000..0258886 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png.import new file mode 100644 index 0000000..594cd7b --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs628dnvnsxwl" +path="res://.godot/imported/btroot.png-5ce207fd487015fa6d9a79efff94f0e4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png" +dest_files=["res://.godot/imported/btroot.png-5ce207fd487015fa6d9a79efff94f0e4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png new file mode 100644 index 0000000..1af7092 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png.import new file mode 100644 index 0000000..b093cc0 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctyhhfi6jks5a" +path="res://.godot/imported/btselector.png-68934baa4bd97bc50fd24775d28386ac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png" +dest_files=["res://.godot/imported/btselector.png-68934baa4bd97bc50fd24775d28386ac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png new file mode 100644 index 0000000..1d54127 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png.import new file mode 100644 index 0000000..6f5c6e9 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chnob03fb7a5" +path="res://.godot/imported/btsequence.png-c2e63f47520b7d091ffbf0c6bc2a76a0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png" +dest_files=["res://.godot/imported/btsequence.png-c2e63f47520b7d091ffbf0c6bc2a76a0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png b/addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png new file mode 100644 index 0000000..1ec1eb7 Binary files /dev/null and b/addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png differ diff --git a/addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png.import b/addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png.import new file mode 100644 index 0000000..525a337 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v47uxlomir5w" +path="res://.godot/imported/btsuccess.png-7ab9f0bea97f3881521c44275dcb2c13.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png" +dest_files=["res://.godot/imported/btsuccess.png-7ab9f0bea97f3881521c44275dcb2c13.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/yet_another_behavior_tree/src/Blackboard/BTBlackboard.gd b/addons/yet_another_behavior_tree/src/Blackboard/BTBlackboard.gd new file mode 100644 index 0000000..90a8ce6 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Blackboard/BTBlackboard.gd @@ -0,0 +1,89 @@ +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btblackboard.png") +class_name BTBlackboard +extends Node + + +## Blackboard allows to share data across nodes and behavior trees. You can create/retrieve/erase +## pairs of key-value. Keys and values are variants and can be anything. +## [br][br] +## Data in blackboard can be isolated in so-called [i]namespaces[/i]. A data key can exists only once in +## a namespace, but can exists multiple times across namespaces, allowing the user to isolate data when, +## for example, a blackboard is shared between multiple behavior trees. By default, if no namespace is +## specified when inserting a data into a blackboard, the [i]default namespace[/i] is used. + + +const DEFAULT_NAMESPACE:String = "_default_namespace" + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +## A dictionnary allowing to specifies default entries before tree first execution. +## [br][br] +## Those entries are added in the default namespace of the blackboard. If you want to add default entries +## in another namespace, you must do it in a script. +@export var data:Dictionary = {} + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +# { +# "namespace" : { +# DATAS +# } +# } +var _execution_data:Dictionary = {} + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _ready() -> void: + # On copie le dico défini par l'utilisateur dans le dico privé + _get_namespace_board(DEFAULT_NAMESPACE).merge(data) + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func get_delta() -> float: + # Delta is not in any namespace, since its a volatile data, that is valid just inside one tree tick + return get_data("delta") + +func has_data(key:Variant, board_namespace:String = DEFAULT_NAMESPACE) -> bool: + var namespace_dico:Dictionary = _get_namespace_board(board_namespace) + return namespace_dico.has(key) + +func get_data(key:Variant, default_value:Variant = null, board_namespace:String = DEFAULT_NAMESPACE) -> Variant: + var result:Variant = _get_namespace_board(board_namespace).get(key, default_value) + return result.get_ref() if result is WeakRef else result + +func set_data(key:Variant, value:Variant, board_namespace:String = DEFAULT_NAMESPACE) -> Variant: + var namespace_dico:Dictionary = _get_namespace_board(board_namespace) + var old_value:Variant = namespace_dico[key] if namespace_dico.has(key) else null + namespace_dico[key] = weakref(value) if value is Node else value + return old_value.get_ref() if old_value is WeakRef else old_value + +func delete_data(key:Variant, board_namespace:String = DEFAULT_NAMESPACE) -> Variant: + var namespace_dico:Dictionary = _get_namespace_board(board_namespace) + var old_value = namespace_dico[key] if namespace_dico.has(key) else null + namespace_dico.erase(key) + return old_value.get_ref() if old_value is WeakRef else old_value + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func _get_namespace_board(board_namespace:String) -> Dictionary: + if not _execution_data.has(board_namespace): + _execution_data[board_namespace] = {} + return _execution_data[board_namespace] diff --git a/addons/yet_another_behavior_tree/src/Nodes/BTNode.gd b/addons/yet_another_behavior_tree/src/Nodes/BTNode.gd new file mode 100644 index 0000000..09b7152 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/BTNode.gd @@ -0,0 +1,126 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btnode.png") +class_name BTNode +extends Node + + +## Base object for all behavior tree nodes. +## [b][u]This node should never be used directly.[/u][/b] + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +@onready var _is_in_editor:bool = Engine.is_editor_hint() +var _children:Array[BTNode] = [] + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _init() -> void: + super._init() + if _is_in_editor: + _connect_signal_if_needed(child_entered_tree, _update_configuration_warnings_1) + _connect_signal_if_needed(child_exiting_tree, _update_configuration_warnings_1) + _connect_signal_if_needed(tree_entered, _update_configuration_warnings_0) + _connect_signal_if_needed(tree_exited, _update_configuration_warnings_0) + _connect_signal_if_needed(child_entered_tree, _update_cached_children) + _connect_signal_if_needed(child_exiting_tree, _update_cached_children) + +func _ready() -> void: + if _is_in_editor: + update_configuration_warnings() + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + return BTTickResult.SUCCESS + +func is_leaf() -> bool: + return false + +func enter(blackboard:BTBlackboard) -> void: + pass + +func start(blackboard:BTBlackboard) -> void: + pass + +func stop(blackboard:BTBlackboard) -> void: + pass + +func exit(blackboard:BTBlackboard) -> void: + pass + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func _update_configuration_warnings_0() -> void: + update_configuration_warnings() + +func _update_configuration_warnings_1(any) -> void: + update_configuration_warnings() + +func is_valid() -> bool: + return false + +func _update_cached_children(any) -> void: + _children.clear() + for child in get_children(): + if child is BTNode: + _children.append(child) + +func _execute(actor:Node, blackboard:BTBlackboard) -> int: + if _is_in_editor: + return BTTickResult.FAILURE + + _enter(blackboard); + + _start(actor, blackboard) + + var result:int = tick(actor, blackboard) + if result != BTTickResult.RUNNING: + _stop(actor, blackboard) + + _exit(blackboard) + return result + +func _enter(blackboard:BTBlackboard) -> void: + enter(blackboard) + pass + +func _start(actor:Node, blackboard:BTBlackboard) -> void: + var blackboard_namespace:String = str(actor.get_instance_id()) + blackboard.get_data("running_nodes", [], blackboard_namespace).append(self) + + if not blackboard.get_data("previously_running_nodes", [], blackboard_namespace).has(self): + start(blackboard) + +func _stop(actor:Node, blackboard:BTBlackboard) -> void: + var blackboard_namespace:String = str(actor.get_instance_id()) + blackboard.get_data("running_nodes", [], blackboard_namespace).erase(self) + exit(blackboard) + stop(blackboard) + +func _exit(blackboard:BTBlackboard) -> void: + pass + +func _connect_signal_if_needed(sig:Signal, callable:Callable) -> void: + if not sig.is_connected(callable): + sig.connect(callable) diff --git a/addons/yet_another_behavior_tree/src/Nodes/BTRoot.gd b/addons/yet_another_behavior_tree/src/Nodes/BTRoot.gd new file mode 100644 index 0000000..fa23a40 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/BTRoot.gd @@ -0,0 +1,196 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btroot.png") +class_name BTRoot +extends BTNode + + +## This behavior tree is a Godot node that can be added to your Scene tree. The logic inside tree nodes +## will be run every frame, during process or physics process, depending on tree process mode. +## [br][br] +## At each frame, the [code]tick[/code] function of tree nodes will be run. This function has access to the +## [i]actor[/i] (the node the tree is describing behavior for), and a [i]blackboard[/i] (allowing to share +## data between nodes). The tick function can either returns: +## [br] +## - [code]SUCCESS[/code], indicating that node execution is successful,[br] +## - [code]RUNNING[/code], indicating that node is doing a long computation/action/whatever you want, that is not finished yet,[br] +## - [code]FAILURE[/code], indicating that something went wrong during child execution (condition not met, ...). +## [br][br] +## Depending on your tree structure, node result will produce various behaviors. See node documentation for +## mor details. + + +enum BTRootProcessMode { + PROCESS, + PHYSIC_PROCESS +} + +#------------------------------------------ +# Signaux +#------------------------------------------ + +signal on_running(running_node_names:Array) +signal on_idle() + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Indicates if tree should run or not +@export var enabled:bool = true: + set(value): + enabled = value + set_process(enabled) + set_physics_process(enabled) + +## Indicates whether tree should execute during [i]process[/i] or [i]physics process[/i]. +@export var root_process_mode:BTRootProcessMode = BTRootProcessMode.PHYSIC_PROCESS + +## Path to the node that the tree is drescribing actions for. This is the node that will be passed to all +## tree nodes, allowing you to manipulate the actor at every tree step. +@export var actor_path:NodePath : + set(value): + actor_path = value + _update_actor_from_path() + update_configuration_warnings() + +## Path to the blackboard node. This allows to share a same blackboard between several trees, for example to code +## a group of enemies acting together, or to specify some default entries using the editor. If empty, a default +## empty blackboard will be used during tree execution. +@export var blackboard:BTBlackboard = null : + set(value): + blackboard = value + _update_blackboard() + update_configuration_warnings() + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _blackboard:BTBlackboard +var _previous_running_nodes:Array[BTNode] = [] +var _actor:Node + +var _execution_start_time_ms:float +var _execution_stop_time_ms:float + +@onready var _performance_monitor_identifier:String = "BTRoot/%s-%s" % [get_name(), get_instance_id()] + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _ready() -> void: + super._ready() + + if not is_valid(): + push_error("BTRoot '%s'(%s) is not valid, check its configuration" % [get_name(), get_instance_id()]) + # Init du blackboard: soit celui de l'utilisateur, soit un tout neuf + _update_blackboard() + + if not Engine.is_editor_hint(): + _add_custom_performance_monitor() + tree_entered.connect(_add_custom_performance_monitor) + tree_exited.connect(_remove_custom_performance_monitor) + +func _process(delta:float) -> void: + if not Engine.is_editor_hint() and enabled and root_process_mode == BTRootProcessMode.PROCESS: + _do_execute(delta) + +func _physics_process(delta:float) -> void: + if not Engine.is_editor_hint() and enabled and root_process_mode == BTRootProcessMode.PHYSIC_PROCESS: + _do_execute(delta) + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + if not _check_direct_children_validity(): + warnings.append("Root tree must contains only one child of type BTComposite") + if not _check_actor_validity(): + warnings.append("Root tree actor must be filled") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + return _check_direct_children_validity() and _check_actor_validity() + +func _check_direct_children_validity() -> bool: + var is_valid:bool = get_child_count() == 1 + if is_valid: + is_valid = get_child(0) is BTComposite + return is_valid + +func _check_actor_validity() -> bool: + var is_valid:bool = actor_path != null and not actor_path.is_empty() + if is_valid: + _update_actor_from_path() + is_valid =_actor != null and is_instance_valid(_actor) + return is_valid + +func _update_blackboard() -> void: + if blackboard != null and is_instance_valid(blackboard): + _blackboard= blackboard + else: + _blackboard = BTBlackboard.new() + +func _update_actor_from_path() -> void: + _actor = get_node_or_null(actor_path) + if not is_instance_valid(_actor) and is_inside_tree(): + # Fallback : si le chemin donné n'était pas relatif à la scene courante, on le check en absolu + _actor = get_tree().current_scene.get_node_or_null(actor_path) + +func _do_execute(delta:float): + _register_execution_start() + var blackboard_namespace:String = str(_actor.get_instance_id()) + # delta est une donnée volatile, elle n'est donc pas dans un namespace puisque chaque arbre tourne + # séquentiellement, donc il n'y a pas de collision de données en cas de partage du blackboard + _blackboard.set_data("delta", delta) + _blackboard.set_data("previously_running_nodes", Array(_previous_running_nodes), blackboard_namespace) + _blackboard.set_data("running_nodes", [], blackboard_namespace) + + _children[0]._execute(_actor, _blackboard) + + var raw_running_nodes:Array = _blackboard.get_data("running_nodes", [], blackboard_namespace) + var running_nodes:Array[BTNode] = [] + running_nodes.append_array(raw_running_nodes) + if _previous_running_nodes != running_nodes: + for n in _previous_running_nodes: + if not running_nodes.has(n): + n._stop(_actor, _blackboard) + + if not running_nodes.is_empty(): + var running_node_names:Array[String] = [] + for running_node in running_nodes: + if running_node.is_leaf(): + running_node_names.append(str(running_node.name)) + on_running.emit(running_node_names) + else: + on_idle.emit() + _previous_running_nodes = running_nodes + _register_execution_stop() + +func _add_custom_performance_monitor() -> void: + if not Performance.has_custom_monitor(_performance_monitor_identifier): + Performance.add_custom_monitor(_performance_monitor_identifier, _compute_last_exec_time) + +func _remove_custom_performance_monitor() -> void: + if Performance.has_custom_monitor(_performance_monitor_identifier): + Performance.remove_custom_monitor(_performance_monitor_identifier) + +func _register_execution_start() -> void: + _execution_start_time_ms = Time.get_ticks_msec() + +func _register_execution_stop() -> void: + _execution_stop_time_ms = Time.get_ticks_msec() + +func _compute_last_exec_time() -> float: + return _execution_stop_time_ms - _execution_start_time_ms diff --git a/addons/yet_another_behavior_tree/src/Nodes/Composite/BTComposite.gd b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTComposite.gd new file mode 100644 index 0000000..619e066 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTComposite.gd @@ -0,0 +1,59 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btcomposite.png") +class_name BTComposite +extends BTNode + + +## Base object for all behavior tree composites. +## Composite nodes defines the root of a tree branch : each branch can be seen as a rule for your AI. +## They accept any kind of behavior tree nodes as children. It can either be a composite, decorator or leaf nodes +## [b][u]This node should never be used directly.[/u][/b] + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + if not _has_at_least_one_child(): + warnings.append("A composite must have at least one child node") + if not _all_children_are_bt_nodes(): + warnings.append("A composite must have children nodes of type BTNode") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + return _has_at_least_one_child() and _all_children_are_bt_nodes() + +func _has_at_least_one_child() -> bool: + return get_child_count() >= 1 + +func _all_children_are_bt_nodes() -> bool: + for child in get_children(): + if not child is BTNode: + return false + return true diff --git a/addons/yet_another_behavior_tree/src/Nodes/Composite/BTParallel.gd b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTParallel.gd new file mode 100644 index 0000000..ef216ee --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTParallel.gd @@ -0,0 +1,58 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btparallel.png") +class_name BTParallel +extends BTComposite + + +## The parallel node is a [i]composite node[/i] that executes all its children at each [code]tick[/code]. +## If at least one child is is running, the parallel reports it's running too. If no child is running, +## then if at least one child succeeded, the parallel reports success, else it reports failure. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + var at_least_one_child_running:bool = false + var at_least_one_child_success:bool = false + + for child in _children: + var result:int = child._execute(actor, blackboard) + if result == BTTickResult.SUCCESS: + at_least_one_child_success = true + if result == BTTickResult.RUNNING: + at_least_one_child_running = true + + # At least one running : this is still running ! + if at_least_one_child_running: + return BTTickResult.RUNNING + # No one is running, so, at least one success > success, else failure + elif at_least_one_child_success: + return BTTickResult.SUCCESS + else: + return BTTickResult.FAILURE + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Composite/BTRandomSelector.gd b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTRandomSelector.gd new file mode 100644 index 0000000..767a674 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTRandomSelector.gd @@ -0,0 +1,42 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btrandomselector.png") +class_name BTRandomSelector +extends BTSelector + + +## The random selector node is a [i]composite node[/i] that behaves like the [code]BTSelector[/code] node, +## except that it executes its children in random order. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func start(blackboard:BTBlackboard) -> void: + super.start(blackboard) + if not save_progression or _running_child_index == -1: + _children.shuffle() diff --git a/addons/yet_another_behavior_tree/src/Nodes/Composite/BTSelector.gd b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTSelector.gd new file mode 100644 index 0000000..c738fb0 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTSelector.gd @@ -0,0 +1,63 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btselector.png") +class_name BTSelector +extends BTComposite + + +## The selector node is a [i]composite node[/i] that executes its children from the first one to the last one, +## in order, until one of them returns [code]SUCCESS[/code]. If a selector child succeeds, the selector +## succeed too. If all selector children failed, the selector fails too. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Indicates whether the selector should resume to the last running child on next tree execution ([code]on[/code]), +## or restart from its first child ([code]off[/code]). Its usefull to describe a non-interruptible action, +## or to optimize process time. +@export var save_progression:bool = false + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _running_child_index:int = -1 + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + for child_index in _children.size(): + if not save_progression or child_index >= _running_child_index: + var child:BTNode = _children[child_index] + var result:int = child._execute(actor, blackboard) + if result != BTTickResult.FAILURE: + if save_progression and result == BTTickResult.RUNNING: + _running_child_index = child_index + return result + + return BTTickResult.FAILURE + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func start(blackboard:BTBlackboard) -> void: + _running_child_index = 0 + +func stop(blackboard:BTBlackboard) -> void: + _running_child_index = -1 diff --git a/addons/yet_another_behavior_tree/src/Nodes/Composite/BTSequence.gd b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTSequence.gd new file mode 100644 index 0000000..24f8181 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Composite/BTSequence.gd @@ -0,0 +1,63 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btsequence.png") +class_name BTSequence +extends BTComposite + + +## The sequence node is a [i]composite node[/i] that executes its children from the first one to the last +## one, until all children succeed or one of its children fails. If all children succeed, the sequence +## succeeds too ; if one child fails, the sequence fails too. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Indicates whether the sequence should resume to the last running child on next tree execution ([code]on[/code]), +## or restart from its first child ([code]off[/code]). Its usefull to describe a non-interruptible action, or to +## optimize process time. +@export var save_progression:bool = false + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _running_child_index:int = -1 + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + for child_index in _children.size(): + if not save_progression or child_index >= _running_child_index: + var child:BTNode = _children[child_index] + var result:int = child._execute(actor, blackboard) + if result != BTTickResult.SUCCESS: + if save_progression and result == BTTickResult.RUNNING: + _running_child_index = child_index + return result + + return BTTickResult.SUCCESS + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func start(blackboard:BTBlackboard) -> void: + _running_child_index = 0 + +func stop(blackboard:BTBlackboard) -> void: + _running_child_index = -1 diff --git a/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTDecorator.gd b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTDecorator.gd new file mode 100644 index 0000000..9185a47 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTDecorator.gd @@ -0,0 +1,58 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btdecorator.png") +class_name BTDecorator +extends BTNode + + +## Base object for all behavior tree decorators. +## Decorator nodes allow to customize result of its only child node. +## [b][u]This node should never be used directly.[/u][/b] + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + if not _has_only_one_child(): + warnings.append("A decorator must have only one child") + if not _child_is_bt_node(): + warnings.append("A decorator must have a child of type BTNode") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + return _has_only_one_child() and _child_is_bt_node() + +func _has_only_one_child() -> bool: + return get_child_count() >= 1 + +func _child_is_bt_node() -> bool: + for child in get_children(): + if not child is BTNode: + return false + return true diff --git a/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTFailure.gd b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTFailure.gd new file mode 100644 index 0000000..5185bc6 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTFailure.gd @@ -0,0 +1,41 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btfailure.png") +class_name BTFailure +extends BTDecorator + + +## The failure node is a [i]decorator[/i] node that always returns [i]failed[/i] on child execution. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + _children[0]._execute(actor, blackboard) + return BTTickResult.FAILURE + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTInverter.gd b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTInverter.gd new file mode 100644 index 0000000..530e78b --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTInverter.gd @@ -0,0 +1,47 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btinverter.png") +class_name BTInverter +extends BTDecorator + + +## The inverter node is a [i]decorator[/i] node returns [i]success[/i] when its child fails its execution, +## and [i]failure[/i] when its child succeeds its execution. When its child is [i]running[/i], it returns +## [i]running[/i] too. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + var child_result:int = _children[0]._execute(actor, blackboard) + if child_result == BTTickResult.SUCCESS: + return BTTickResult.FAILURE + if child_result == BTTickResult.FAILURE: + return BTTickResult.SUCCESS + return BTTickResult.RUNNING + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTLimiter.gd b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTLimiter.gd new file mode 100644 index 0000000..49cd82a --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTLimiter.gd @@ -0,0 +1,60 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btlimiter.png") +class_name BTLimiter +extends BTDecorator + + +## The limiter node is a [i]decorator[/i] node that limits the total number of execution of its child node. +## When the limit is not reachs, the limiter nodes reports its child execution status. Once the limit is reachs, +## it never executs its child and always report a [i]failed[/i] execution. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Number of allowed child execution. +@export_range(0, 9999999, 1) var limit:int = 1 + +## Whether or not the [code]limit[/code] value is included into the number of times the child can run. +## It clarifies the usage of the limit. +@export var include_limit:bool = true + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _invocation_count:int = 0 + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + var limit_reached:bool = _invocation_count >= limit + if not include_limit: + limit_reached = _invocation_count >= limit - 1 + + if limit_reached: + return BTTickResult.FAILURE + + var result:int = _children[0]._execute(actor, blackboard) + if result != BTTickResult.RUNNING: + _invocation_count += 1 + return result + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTRandom.gd b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTRandom.gd new file mode 100644 index 0000000..07cd4e2 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTRandom.gd @@ -0,0 +1,47 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btrandom.png") +class_name BTRandom +extends BTDecorator + + +## The random node is a [i]decorator[/i] node randomly execute its child. If the child is executed, +## the node result is the same as its child result. Otherwise, result is [i]failure[/i]. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## A float between [code]0[/code] (included) and [code]1[/code] (included) indicating the probability of child +## execution. +@export_range(0, 1) var probability:float = 0.5 + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + var random_float:float = randf() + if random_float > probability: + return BTTickResult.FAILURE + return _children[0]._execute(actor, blackboard) + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTRepeatUntil.gd b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTRepeatUntil.gd new file mode 100644 index 0000000..8ceffdf --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTRepeatUntil.gd @@ -0,0 +1,67 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btrepeatuntil.png") +class_name BTRepeatUntil +extends BTDecorator + + +## The repeat until node is a [i]decorator[/i] node that loop its child execution until child execution result +## is as excepted. It is possible to specifies the maximum number of loop execution allowed to obtain the desired +## result. If desired result is obtained before the loop execution limit, the repeat until node returns the +## obtained result. If not, its returns a [i]failure[/i]. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Expected child result to stop the loop. +@export_enum("SUCCESS:0", "RUNNING:1", "FAILURE:2") var stop_condition:int = 0 + +## Maximum number of child execution to obtain the desired result. If value is [code]0[/code], there is +## [b]no limit[/b] to the number of times the loop can run (⚠️ be careful to not create an infinite loop). +## If value is more than zero, its represents the maximum number of loop execution. +@export_range(0, 999999) var max_iteration:int = 0 + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + var result:int + var not_stopped:bool = true + var iteration_count:int = 0 + while not_stopped: + result = _children[0]._execute(actor, blackboard) + if stop_condition == BTTickResult.SUCCESS and result == BTTickResult.SUCCESS: + not_stopped = false + if stop_condition == BTTickResult.RUNNING and result == BTTickResult.RUNNING: + not_stopped = false + if stop_condition == BTTickResult.FAILURE and result == BTTickResult.FAILURE: + not_stopped = false + + if max_iteration > 0: + iteration_count += 1 + if not not_stopped and iteration_count > max_iteration: + not_stopped = false + + return result + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTSuccess.gd b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTSuccess.gd new file mode 100644 index 0000000..8c9fe7a --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Decorators/BTSuccess.gd @@ -0,0 +1,41 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btsuccess.png") +class_name BTSuccess +extends BTDecorator + + +## The success node is a [i]decorator[/i] node that always returns [i]success[/i] on child execution. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + _children[0]._execute(actor, blackboard) + return BTTickResult.SUCCESS + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTAction.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTAction.gd new file mode 100644 index 0000000..3637f54 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTAction.gd @@ -0,0 +1,38 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btaction.png") +class_name BTAction +extends BTLeaf + + +## The action node is a [i]leaf[/i] node. Its purpose is to return [i]success[/i] when an action is completed, +## [i]failure[/i] if its fails to execute, and [i]running[/i] if the action is occuring but is not completed yet. +## [b][u]Users must subclass this node to implements their own actions.[/u][/b] + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardDelete.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardDelete.gd new file mode 100644 index 0000000..dc0fd44 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardDelete.gd @@ -0,0 +1,64 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboarddelete.png") +class_name BTActionBlackboardDelete +extends BTLeaf + + +## The blackboard delete action node is a [i]leaf[/i] node. It allows to erase a key from the tree blackboard. +## This node operates in the blackboard [i]default namespace[/i]. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Name of the key that must be erased from blackboard, in [i]default namespace[/i] +@export var blackboard_key:String = "" : + set(value): + blackboard_key = value + update_configuration_warnings() + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + warnings.append_array(super._get_configuration_warnings()) + if not _blackboard_key_is_set(): + warnings.append("Blackboard key must be set") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + blackboard.delete_data(blackboard_key) + return BTTickResult.SUCCESS + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + var is_valid:bool = super.is_valid() + if is_valid: + is_valid = _blackboard_key_is_set() + return is_valid + +func _blackboard_key_is_set() -> bool: + return blackboard_key != null and not blackboard_key.is_empty() + diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardSet.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardSet.gd new file mode 100644 index 0000000..be1ab5c --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardSet.gd @@ -0,0 +1,98 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btactionblackboardset.png") +class_name BTActionBlackboardSet +extends BTLeaf + + +## The blackboard set action node is a [i]leaf[/i] node. It allows to set a value in the blackboard. +## Its execution always returns [i]success[/i]. This node operates in the blackboard [i]default namespace[/i]. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Name of the key that must be set, in [i]default namespace[/i] +@export var blackboard_key:String = "" : + set(value): + blackboard_key = value + update_configuration_warnings() + +## An expression representing the value to associated to the given key. The expression will be evaluated by +## Godot Engine during child execution. It should be simple. See [url=https://docs.godotengine.org/en/latest/classes/class_expression.html]Godot Expression[/url] +## for details. In expression, user has access to two predefined variables:[br] +## - [code]actor[/code]: the node the tree is describing action for,[br] +## - [code]blackboard[/code]: the tree blackboard,[br] +## - [code]delta[/code]: the [i]_process[/i] or [i]_physics_process[/i] delta value, as a [code]float[/code]. +@export_multiline var expression:String = "" : + set(value): + if value != expression: + expression = value + _update_expression() + update_configuration_warnings() + +## Indicates if the value must be overwritten if it already exists or not +@export var can_overwrite_value:bool = false + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _expression:BTExpression = BTExpression.new() + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + warnings.append_array(super._get_configuration_warnings()) + if not _blackboard_key_is_set(): + warnings.append("Blackboard key must be set") + if not _expression_key_is_set(): + warnings.append("Expression must be set") + if not _expression_is_valid(): + warnings.append("Expression is not valid") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + if can_overwrite_value or not blackboard.has_data(blackboard_key): + var value:Variant = _expression.evaluate(actor, blackboard) + blackboard.set_data(blackboard_key, value) + return BTTickResult.SUCCESS + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + var is_valid:bool = super.is_valid() + if is_valid: + is_valid = _blackboard_key_is_set() + if is_valid: + is_valid = _expression_key_is_set() + return is_valid + +func _blackboard_key_is_set() -> bool: + return blackboard_key != null and not blackboard_key.is_empty() + +func _expression_key_is_set() -> bool: + return expression != null and not expression.is_empty() + +func _expression_is_valid() -> bool: + return _expression.is_valid() + +func _update_expression() -> void: + _expression.expression = expression diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionCallable.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionCallable.gd new file mode 100644 index 0000000..5606ea9 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionCallable.gd @@ -0,0 +1,123 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btactioncallable.png") +class_name BTActionCallable +extends BTLeaf + + +## The callable action node is a [i]leaf[/i] node. At each tick, the node calls a function from an object that has +## been parametrized. It can also pass arguments to this function. Its result depends of the specified function +## result: +## [br] +## - If specified function returns a [code]bool[/code], then the tick result is [i]success[i] is boolean +## is [code]true[/code], [i]failure[/i] otherwise,[br] +## - If the specified function returns an [code]int[/code], it is interpreted as the enum values [code]SUCCESS[/code], +## [code]RUNNING[/code] or [code]FAILURE[/code] from [code]BTTickResult[/code] object. If another value is returned +## by specified function, behavior is undefined,[br] +## - If specified function returns nothing ([code]void[/code] or [code]null[/code] result), then [i]success[/i] +## is returned. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Path to the node that contains the function to call +@export var method_owner_path:NodePath: + set(value): + method_owner_path = value + _update_method_owner_from_path() + update_configuration_warnings() + +## Name of the function to call in the [i]method owner node[/i] +@export var method_name:String = "": + set(value): + method_name = value + update_configuration_warnings() + +## Array of arguments to pass when calling the function. Arguments are expressions that will +## be evaluated by Godot Engine at runtime to produce the desired value. See [url=https://docs.godotengine.org/en/latest/classes/class_expression.html]Godot Expression[/url] +## for details. In expression, user has access to two predefined variables:[br] +## - [code]actor[/code]: the node the tree is describing action for,[br] +## - [code]blackboard[/code]: the tree blackboard,[br] +## - [code]delta[/code]: the [i]_process[/i] or [i]_physics_process[/i] delta value, as a [code]float[/code].[br] +## Number and types of arguments must match function prototype, or an error will occurs at runtime. +@export var method_arguments:Array[String] = [] + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _method_owner:Node +var _cached_method_arguments:Array[String] = [] +var _argument_expression:Array[BTExpression] = [] + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _ready() -> void: + _update_method_owner_from_path() + _update_argument_expressions() + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + warnings.append_array(super._get_configuration_warnings()) + if not _check_method_owner_validity(): + warnings.append("Method owner must be set") + if not _check_method_name_validity(): + warnings.append("Method name must be set") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + _update_argument_expressions() + var arguments:Array[Variant] = _argument_expression.map(func(expr):return expr.evaluate(actor, blackboard)) + var result:Variant = _method_owner.callv(method_name, arguments) + if result is bool: + return BTTickResult.SUCCESS if result else BTTickResult.FAILURE + if result is int: + return result + return BTTickResult.SUCCESS + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + return _check_method_owner_validity() and _check_method_name_validity() + +func _check_method_owner_validity() -> bool: + var is_valid:bool = method_owner_path != null and not method_owner_path.is_empty() + if is_valid: + _update_method_owner_from_path() + is_valid = _method_owner != null and is_instance_valid(_method_owner) + return is_valid + +func _check_method_name_validity() -> bool: + return method_name != null and not method_name.is_empty() + +func _update_method_owner_from_path() -> void: + _method_owner = get_node_or_null(method_owner_path) + if not is_instance_valid(_method_owner) and is_inside_tree(): + # Fallback : si le chemin donné n'était pas relatif à la scene courante, on le check en absolu + _method_owner = get_tree().current_scene.get_node_or_null(method_owner_path) + +func _update_argument_expressions() -> void: + if _cached_method_arguments != method_arguments: + _cached_method_arguments = Array(method_arguments) + _argument_expression.clear() + for expr in _cached_method_arguments: + var btexpression:BTExpression = BTExpression.new() + btexpression.expression = expr + _argument_expression.append(btexpression) diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionWait.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionWait.gd new file mode 100644 index 0000000..e2f58de --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionWait.gd @@ -0,0 +1,62 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btactionwait.png") +class_name BTActionWait +extends BTLeaf + + +## The wait action node is a [i]leaf[/i] node. Its execution returns [i]running[/i] during the specified wait time, +## then returns *success* when specified time is elapsed. After succeeded, the wait time is rearmed for next +## tree execution. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Number of milliseconds to wait before returning [i]success[/i] +@export var wait_time_ms:int = 1_000 + +## Indicates if a random deviation should be applied to the wait time. [code]0[/code] means there is no +## deviation et the wait time will be strictyl respected. Random deviation may change after each node rearm. +@export var random_deviation_ms:int = 0 + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _current_time_ms:float = 0 +var _time_to_reach_ms:int + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + _current_time_ms += blackboard.get_delta() * 1_000 + if _current_time_ms <= _time_to_reach_ms: + return BTTickResult.RUNNING + return BTTickResult.SUCCESS + +func start(blackboard:BTBlackboard) -> void: + _current_time_ms = 0 + _time_to_reach_ms = wait_time_ms + if random_deviation_ms != 0: + _time_to_reach_ms += randi_range(0, random_deviation_ms) + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + + diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTCondition.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTCondition.gd new file mode 100644 index 0000000..2be6861 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTCondition.gd @@ -0,0 +1,38 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btcondition.png") +class_name BTCondition +extends BTLeaf + + +## The condition node is a [i]leaf[/i] node. Its purpose is to return [i]success[/i] when a condition is meet, +## [i]failure[/i] otherwise. This node should never return [i]running[/i]. +## [b][u]Users must subclass this node to implements their own conditions.[/u][/b] + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionBlackboardKeyExists.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionBlackboardKeyExists.gd new file mode 100644 index 0000000..e744b3c --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionBlackboardKeyExists.gd @@ -0,0 +1,66 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardkeyexists.png") +class_name BTConditionBlackboardKeyExists +extends BTLeaf + + +## The blackboard key exists condition node is a [i]leaf[/i] node. It returns [i]success[/i] if a certain key +## is present in the tree blackboard during its execution, [i]failure[/i] otherwise. This node operates in the blackboard +## [i]default namespace[/i]. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Name of the key that must exists in the blackboard, in [i]default namespace[/i] +@export var blackboard_key:String = "" : + set(value): + blackboard_key = value + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + warnings.append_array(super._get_configuration_warnings()) + if not _blackboard_key_is_set(): + warnings.append("Blackboard key must be set") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + var result:int = BTTickResult.FAILURE + if blackboard.has_data(blackboard_key): + result = BTTickResult.SUCCESS + return result + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + var is_valid:bool = super.is_valid() + if is_valid: + is_valid = _blackboard_key_is_set() + return is_valid + +func _blackboard_key_is_set() -> bool: + return blackboard_key != null and not blackboard_key.is_empty() + diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionBlackboardValuesComparison.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionBlackboardValuesComparison.gd new file mode 100644 index 0000000..de943f4 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionBlackboardValuesComparison.gd @@ -0,0 +1,105 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btconditionblackboardvaluescomparison.png") +class_name BTConditionBlackboardValuesComparison +extends BTLeaf + + +## The blackboard values comparison condition node is a [i]leaf[/i] node. It returns [i]success[/i] both values +## represented by specified keys returns true when compared using the given operator. This node operates in the blackboard +## [i]default namespace[/i]. + + +enum Operator { + EQUAL = 1, + NOT_EQUAL = 2, + LOWER = 3, + LOWER_OR_EQUAL = 4, + GREATER = 5, + GREATER_OR_EQUAL = 6 +} + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Name of the key that old the first value to compare, in [i]default namespace[/i] +@export var first_operand_blackboard_key:String = "" : + set(value): + first_operand_blackboard_key = value + update_configuration_warnings() + +## Operator used to compare values +@export_enum("EQUAL:1", "NOT_EQUAL:2", "LOWER:3", "LOWER_OR_EQUAL:4", "GREATER:5", "GREATER_OR_EQUAL:6") var operator:int = 0 + +## Name of the key that old the second value to compare, [i]default namespace[/i] +@export var second_operand_blackboard_key:String = "" : + set(value): + second_operand_blackboard_key = value + update_configuration_warnings() + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _parsed_compared_value:Variant + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + warnings.append_array(super._get_configuration_warnings()) + if not _blackboard_keys_are_set(): + warnings.append("Blackboard keys must be set") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + var result:int = BTTickResult.FAILURE + + var first_operand:Variant = blackboard.get_data(first_operand_blackboard_key) + var second_operand:Variant = blackboard.get_data(second_operand_blackboard_key) + if first_operand != null and second_operand != null: + var compare_result:bool = false + match(operator): + Operator.EQUAL: + compare_result = first_operand == second_operand + Operator.NOT_EQUAL: + compare_result = first_operand != second_operand + Operator.LOWER: + compare_result = first_operand < second_operand + Operator.LOWER_OR_EQUAL: + compare_result = first_operand <= second_operand + Operator.GREATER: + compare_result = first_operand > second_operand + Operator.GREATER_OR_EQUAL: + compare_result = first_operand >= second_operand + if compare_result: + return BTTickResult.SUCCESS + return result + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + var is_valid:bool = super.is_valid() + if is_valid: + is_valid = _blackboard_keys_are_set() + return is_valid + +func _blackboard_keys_are_set() -> bool: + return first_operand_blackboard_key != null and not first_operand_blackboard_key.is_empty() and second_operand_blackboard_key != null and not second_operand_blackboard_key.is_empty() + diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionCallable.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionCallable.gd new file mode 100644 index 0000000..236c576 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionCallable.gd @@ -0,0 +1,112 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btconditioncallable.png") +class_name BTConditionCallable +extends BTLeaf + + +## The callable condition node is a [i]leaf[/i] node. The node calls a function from an object that has been +## parametrized to check for a condition. It can also pass arguments to this function. Its result is the function +## result, meaning that specified function must returns a [code]bool[/code] value. This nodes returns +## [i]success[/i] if function call returned [code]true[/code], and [i]failure[/i] if function call returned [code]false[/code]. + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +## Path to the node that contains the function to call +@export var method_owner_path:NodePath: + set(value): + method_owner_path = value + _update_method_owner_from_path() + update_configuration_warnings() + +## Name of the function to call in the [i]method owner node[i] +@export var method_name:String = "": + set(value): + method_name = value + update_configuration_warnings() + +## Array of arguments to pass when calling the function. Arguments are expressions that will +## be evaluated by Godot Engine at runtime to produce the desired value. See [url=https://docs.godotengine.org/en/latest/classes/class_expression.html]Godot Expression[/url] +## for details. In expression, user has access to two predefined variables:[br] +## - [code]actor[/code]: the node the tree is describing action for,[br] +## - [code]blackboard[/code]: the tree blackboard,[br] +## - [code]delta[/code]: the [i]_process[/i] or [i]_physics_process[/i] delta value, as a [code]float[/code].[br] +## Number and types of arguments must match function prototype, or an error will occurs at runtime. +@export var method_arguments:Array[String] = [] + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _method_owner:Node +var _cached_method_arguments:Array[String] = [] +var _argument_expression:Array[BTExpression] = [] + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _ready() -> void: + _update_method_owner_from_path() + _update_argument_expressions() + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + warnings.append_array(super._get_configuration_warnings()) + if not _check_method_owner_validity(): + warnings.append("Method owner must be set") + if not _check_method_name_validity(): + warnings.append("Method name must be set") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func tick(actor:Node, blackboard:BTBlackboard) -> int: + _update_argument_expressions() + var arguments:Array[Variant] = _argument_expression.map(func(expr):return expr.evaluate(actor, blackboard)) + var result:bool = _method_owner.callv(method_name, arguments) + return BTTickResult.SUCCESS if result else BTTickResult.FAILURE + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + return _check_method_owner_validity() and _check_method_name_validity() + +func _check_method_owner_validity() -> bool: + var is_valid:bool = method_owner_path != null and not method_owner_path.is_empty() + if is_valid: + _update_method_owner_from_path() + is_valid = _method_owner != null and is_instance_valid(_method_owner) + return is_valid + +func _check_method_name_validity() -> bool: + return method_name != null and not method_name.is_empty() + +func _update_method_owner_from_path() -> void: + _method_owner = get_node_or_null(method_owner_path) + if not is_instance_valid(_method_owner) and is_inside_tree(): + # Fallback : si le chemin donné n'était pas relatif à la scene courante, on le check en absolu + _method_owner = get_tree().current_scene.get_node_or_null(method_owner_path) + +func _update_argument_expressions() -> void: + if _cached_method_arguments != method_arguments: + _cached_method_arguments = Array(method_arguments) + _argument_expression.clear() + for expr in _cached_method_arguments: + var btexpression:BTExpression = BTExpression.new() + btexpression.expression = expr + _argument_expression.append(btexpression) diff --git a/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTLeaf.gd b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTLeaf.gd new file mode 100644 index 0000000..618805d --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Nodes/Leaves/BTLeaf.gd @@ -0,0 +1,55 @@ +@tool +@icon("res://addons/yet_another_behavior_tree/src/Assets/Icons/btleaf.png") +class_name BTLeaf +extends BTNode + + +## Base object for all behavior tree leaves. +## Leaf nodes, as their name implies, do not have any child. They represents basic unit of work of your +## AI, which can be separated into two notions: conditions and actions. +## [b][u]This node should never be used directly.[/u][/b] + + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _get_configuration_warnings() -> PackedStringArray: + var warnings:PackedStringArray = [] + if not _has_no_child(): + warnings.append("A leaf must not have child") + return warnings + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func is_leaf() -> bool: + return true + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func is_valid() -> bool: + return _has_no_child() + +func _has_no_child() -> bool: + return get_child_count() == 0 + diff --git a/addons/yet_another_behavior_tree/src/Result/BTTickResult.gd b/addons/yet_another_behavior_tree/src/Result/BTTickResult.gd new file mode 100644 index 0000000..5c160d0 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Result/BTTickResult.gd @@ -0,0 +1,36 @@ +extends RefCounted +class_name BTTickResult + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +enum { + SUCCESS = 0, + RUNNING = 1, + FAILURE = 2 +} + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ diff --git a/addons/yet_another_behavior_tree/src/Utils/BTExpression.gd b/addons/yet_another_behavior_tree/src/Utils/BTExpression.gd new file mode 100644 index 0000000..9e17b93 --- /dev/null +++ b/addons/yet_another_behavior_tree/src/Utils/BTExpression.gd @@ -0,0 +1,64 @@ +extends RefCounted +class_name BTExpression + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +var expression:String = "": + set(value): + if value != expression: + expression = value + _expression = _parse_expression(expression) + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _expression:Expression + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func is_valid() -> bool: + return _expression != null + +func evaluate(actor:Node, blackboard:BTBlackboard) -> Variant: + var arguments:Array[Variant] = [actor, blackboard, blackboard.get_delta()] + return _execute_expression(arguments) + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func _parse_expression(string_expr:String) -> Expression: + var expr:Expression = Expression.new() + var parse_code:int = expr.parse(string_expr, ["actor", "blackboard", "delta"]) + if parse_code != OK: + push_error("Unable to parse expression '%s' : %s" % [string_expr, expr.get_error_text()]) + return null + return expr + +func _execute_expression(arguments:Array[Variant]) -> Variant: + var result:Variant = null + if _expression == null: + _expression = _parse_expression(expression) + if _expression != null: + result = _expression.execute(arguments, self, true) + if _expression.has_execute_failed(): + result = null + push_error("Unable to execute expression '%s' : %s" % [expression, _expression.get_error_text()]) + return result diff --git a/addons/yet_another_behavior_tree/yet_another_behavior_tree.gd b/addons/yet_another_behavior_tree/yet_another_behavior_tree.gd new file mode 100644 index 0000000..0813f65 --- /dev/null +++ b/addons/yet_another_behavior_tree/yet_another_behavior_tree.gd @@ -0,0 +1,12 @@ +@tool +extends EditorPlugin + + +func _enter_tree() -> void: + # Initialization of the plugin goes here. + pass + + +func _exit_tree() -> void: + # Clean-up of the plugin goes here. + pass diff --git a/assets/Assets_Material.tres b/assets/Assets_Material.tres index 71954fd..21e9bf2 100644 --- a/assets/Assets_Material.tres +++ b/assets/Assets_Material.tres @@ -1,7 +1,7 @@ -[gd_resource type="SpatialMaterial" load_steps=3 format=2] +[gd_resource type="StandardMaterial3D" load_steps=3 format=2] -[ext_resource path="res://assets/Items_EM.png" type="Texture" id=1] -[ext_resource path="res://assets/Items_Albedo.png" type="Texture" id=2] +[ext_resource path="res://assets/Items_EM.png" type="Texture2D" id=1] +[ext_resource path="res://assets/Items_Albedo.png" type="Texture2D" id=2] [resource] albedo_texture = ExtResource( 2 ) diff --git a/assets/CGTuts_OceanHDRI_Freebie_001.hdr.import b/assets/CGTuts_OceanHDRI_Freebie_001.hdr.import index e78c406..5523b8a 100644 --- a/assets/CGTuts_OceanHDRI_Freebie_001.hdr.import +++ b/assets/CGTuts_OceanHDRI_Freebie_001.hdr.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/CGTuts_OceanHDRI_Freebie_001.hdr-ab8b71e2c9bba222163dccd38269d538.stex" +type="CompressedTexture2D" +uid="uid://pndvqph30dic" +path="res://.godot/imported/CGTuts_OceanHDRI_Freebie_001.hdr-ab8b71e2c9bba222163dccd38269d538.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/CGTuts_OceanHDRI_Freebie_001.hdr" -dest_files=[ "res://.import/CGTuts_OceanHDRI_Freebie_001.hdr-ab8b71e2c9bba222163dccd38269d538.stex" ] +dest_files=["res://.godot/imported/CGTuts_OceanHDRI_Freebie_001.hdr-ab8b71e2c9bba222163dccd38269d538.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/Items_Albedo.png.import b/assets/Items_Albedo.png.import index f1071a8..fe89adc 100644 --- a/assets/Items_Albedo.png.import +++ b/assets/Items_Albedo.png.import @@ -1,37 +1,35 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/Items_Albedo.png-205aaab346b168397ea1ea1ce5aceabf.s3tc.stex" -path.etc2="res://.import/Items_Albedo.png-205aaab346b168397ea1ea1ce5aceabf.etc2.stex" +type="CompressedTexture2D" +uid="uid://cc4ebemse18ew" +path.etc2="res://.godot/imported/Items_Albedo.png-205aaab346b168397ea1ea1ce5aceabf.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc2" ], +"imported_formats": ["etc2_astc"], "vram_texture": true } [deps] source_file="res://assets/Items_Albedo.png" -dest_files=[ "res://.import/Items_Albedo.png-205aaab346b168397ea1ea1ce5aceabf.s3tc.stex", "res://.import/Items_Albedo.png-205aaab346b168397ea1ea1ce5aceabf.etc2.stex" ] +dest_files=["res://.godot/imported/Items_Albedo.png-205aaab346b168397ea1ea1ce5aceabf.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/Items_EM.png.import b/assets/Items_EM.png.import index d263905..6a0de76 100644 --- a/assets/Items_EM.png.import +++ b/assets/Items_EM.png.import @@ -1,37 +1,35 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/Items_EM.png-d56acc99adf5d5835b381b256fd4a6e3.s3tc.stex" -path.etc2="res://.import/Items_EM.png-d56acc99adf5d5835b381b256fd4a6e3.etc2.stex" +type="CompressedTexture2D" +uid="uid://dope3srd2yn16" +path.etc2="res://.godot/imported/Items_EM.png-d56acc99adf5d5835b381b256fd4a6e3.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc2" ], +"imported_formats": ["etc2_astc"], "vram_texture": true } [deps] source_file="res://assets/Items_EM.png" -dest_files=[ "res://.import/Items_EM.png-d56acc99adf5d5835b381b256fd4a6e3.s3tc.stex", "res://.import/Items_EM.png-d56acc99adf5d5835b381b256fd4a6e3.etc2.stex" ] +dest_files=["res://.godot/imported/Items_EM.png-d56acc99adf5d5835b381b256fd4a6e3.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/Titillium-Regular.otf.import b/assets/Titillium-Regular.otf.import new file mode 100644 index 0000000..da623fc --- /dev/null +++ b/assets/Titillium-Regular.otf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://jnh66tbet74c" +path="res://.godot/imported/Titillium-Regular.otf-8172f0d4cb0051a0fa14d71e0a13f41b.fontdata" + +[deps] + +source_file="res://assets/Titillium-Regular.otf" +dest_files=["res://.godot/imported/Titillium-Regular.otf-8172f0d4cb0051a0fa14d71e0a13f41b.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/VR_Assets.dae.import b/assets/VR_Assets.dae.import index d8bc28c..2c6d0d8 100644 --- a/assets/VR_Assets.dae.import +++ b/assets/VR_Assets.dae.import @@ -11,7 +11,7 @@ dest_files=[ "res://.import/VR_Assets.dae-cbbb272d8ba8f4f562fbec5da83dfc49.scn" [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" nodes/root_scale=1.0 nodes/custom_script="" diff --git a/assets/adorable-z.png.import b/assets/adorable-z.png.import index b022df2..c0626a8 100644 --- a/assets/adorable-z.png.import +++ b/assets/adorable-z.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/adorable-z.png-504771f45de9fc5826a3ea80236abdf5.stex" +type="CompressedTexture2D" +uid="uid://dpju055logaov" +path="res://.godot/imported/adorable-z.png-504771f45de9fc5826a3ea80236abdf5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/adorable-z.png" -dest_files=[ "res://.import/adorable-z.png-504771f45de9fc5826a3ea80236abdf5.stex" ] +dest_files=["res://.godot/imported/adorable-z.png-504771f45de9fc5826a3ea80236abdf5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/airport.png.import b/assets/airport.png.import index 605b6f8..9a0d32a 100644 --- a/assets/airport.png.import +++ b/assets/airport.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/airport.png-98f87409e80d3e9c02e7564c93f6881b.stex" +type="CompressedTexture2D" +uid="uid://dea5cu5j3jffb" +path="res://.godot/imported/airport.png-98f87409e80d3e9c02e7564c93f6881b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/airport.png" -dest_files=[ "res://.import/airport.png-98f87409e80d3e9c02e7564c93f6881b.stex" ] +dest_files=["res://.godot/imported/airport.png-98f87409e80d3e9c02e7564c93f6881b.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/airport_3x3.png.import b/assets/airport_3x3.png.import index 882e2ce..e33584f 100644 --- a/assets/airport_3x3.png.import +++ b/assets/airport_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/airport_3x3.png-cc157b16fec921552db23d9a5507e050.stex" +type="CompressedTexture2D" +uid="uid://etj28k82uwqh" +path="res://.godot/imported/airport_3x3.png-cc157b16fec921552db23d9a5507e050.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/airport_3x3.png" -dest_files=[ "res://.import/airport_3x3.png-cc157b16fec921552db23d9a5507e050.stex" ] +dest_files=["res://.godot/imported/airport_3x3.png-cc157b16fec921552db23d9a5507e050.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/avatars/cindy.png.import b/assets/avatars/cindy.png.import index 5849f98..9fa8a70 100644 --- a/assets/avatars/cindy.png.import +++ b/assets/avatars/cindy.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/cindy.png-cb8a5f80073224c0f2efbe4df78ee980.stex" +type="CompressedTexture2D" +uid="uid://woa3bx660rq7" +path="res://.godot/imported/cindy.png-cb8a5f80073224c0f2efbe4df78ee980.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/avatars/cindy.png" -dest_files=[ "res://.import/cindy.png-cb8a5f80073224c0f2efbe4df78ee980.stex" ] +dest_files=["res://.godot/imported/cindy.png-cb8a5f80073224c0f2efbe4df78ee980.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/avatars/kit.png.import b/assets/avatars/kit.png.import index a25584f..f5f9c94 100644 --- a/assets/avatars/kit.png.import +++ b/assets/avatars/kit.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/kit.png-75127fbeb5750eeea1d78c68c178ed4c.stex" +type="CompressedTexture2D" +uid="uid://bnf0jfum60o0x" +path="res://.godot/imported/kit.png-75127fbeb5750eeea1d78c68c178ed4c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/avatars/kit.png" -dest_files=[ "res://.import/kit.png-75127fbeb5750eeea1d78c68c178ed4c.stex" ] +dest_files=["res://.godot/imported/kit.png-75127fbeb5750eeea1d78c68c178ed4c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/avatars/zc.png.import b/assets/avatars/zc.png.import index 1b6ce89..d325f0d 100644 --- a/assets/avatars/zc.png.import +++ b/assets/avatars/zc.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/zc.png-9c1961dfd8efec30f493ad0bd371747d.stex" +type="CompressedTexture2D" +uid="uid://crmo53hryvwhe" +path="res://.godot/imported/zc.png-9c1961dfd8efec30f493ad0bd371747d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/avatars/zc.png" -dest_files=[ "res://.import/zc.png-9c1961dfd8efec30f493ad0bd371747d.stex" ] +dest_files=["res://.godot/imported/zc.png-9c1961dfd8efec30f493ad0bd371747d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/cirria.png.import b/assets/cirria.png.import index c8e5b38..fea2962 100644 --- a/assets/cirria.png.import +++ b/assets/cirria.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/cirria.png-4daefb9d8587ba12dd6185bbcb2f4072.stex" +type="CompressedTexture2D" +uid="uid://b0iyr31mogl3i" +path="res://.godot/imported/cirria.png-4daefb9d8587ba12dd6185bbcb2f4072.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/cirria.png" -dest_files=[ "res://.import/cirria.png-4daefb9d8587ba12dd6185bbcb2f4072.stex" ] +dest_files=["res://.godot/imported/cirria.png-4daefb9d8587ba12dd6185bbcb2f4072.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/coal.png.import b/assets/coal.png.import index 69de4e2..c3b3f49 100644 --- a/assets/coal.png.import +++ b/assets/coal.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/coal.png-5140a4b3d8a789dec45de3c2a035a8d8.stex" +type="CompressedTexture2D" +uid="uid://da4tvwbk1cprw" +path="res://.godot/imported/coal.png-5140a4b3d8a789dec45de3c2a035a8d8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/coal.png" -dest_files=[ "res://.import/coal.png-5140a4b3d8a789dec45de3c2a035a8d8.stex" ] +dest_files=["res://.godot/imported/coal.png-5140a4b3d8a789dec45de3c2a035a8d8.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/coal_3x3.png.import b/assets/coal_3x3.png.import index c665a23..00bda07 100644 --- a/assets/coal_3x3.png.import +++ b/assets/coal_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/coal_3x3.png-d79286978cf814575ecfb7d4f5e15055.stex" +type="CompressedTexture2D" +uid="uid://dluntcnq5c0w" +path="res://.godot/imported/coal_3x3.png-d79286978cf814575ecfb7d4f5e15055.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/coal_3x3.png" -dest_files=[ "res://.import/coal_3x3.png-d79286978cf814575ecfb7d4f5e15055.stex" ] +dest_files=["res://.godot/imported/coal_3x3.png-d79286978cf814575ecfb7d4f5e15055.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/coal_smoke_frames.png.import b/assets/coal_smoke_frames.png.import index 55b43df..02c6d78 100644 --- a/assets/coal_smoke_frames.png.import +++ b/assets/coal_smoke_frames.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/coal_smoke_frames.png-3eb7af83b1fd63d6b2560e9730cadce2.stex" +type="CompressedTexture2D" +uid="uid://tff07juk1bhg" +path="res://.godot/imported/coal_smoke_frames.png-3eb7af83b1fd63d6b2560e9730cadce2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/coal_smoke_frames.png" -dest_files=[ "res://.import/coal_smoke_frames.png-3eb7af83b1fd63d6b2560e9730cadce2.stex" ] +dest_files=["res://.godot/imported/coal_smoke_frames.png-3eb7af83b1fd63d6b2560e9730cadce2.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/coal_smoke_frames_3x3.png.import b/assets/coal_smoke_frames_3x3.png.import index 6622231..3bb3ed9 100644 --- a/assets/coal_smoke_frames_3x3.png.import +++ b/assets/coal_smoke_frames_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/coal_smoke_frames_3x3.png-08af441557c979d94cbff7ef240dee8b.stex" +type="CompressedTexture2D" +uid="uid://c2byngubyas6k" +path="res://.godot/imported/coal_smoke_frames_3x3.png-08af441557c979d94cbff7ef240dee8b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/coal_smoke_frames_3x3.png" -dest_files=[ "res://.import/coal_smoke_frames_3x3.png-08af441557c979d94cbff7ef240dee8b.stex" ] +dest_files=["res://.godot/imported/coal_smoke_frames_3x3.png-08af441557c979d94cbff7ef240dee8b.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/com_zones.png.import b/assets/com_zones.png.import index b8ff51e..587847c 100644 --- a/assets/com_zones.png.import +++ b/assets/com_zones.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/com_zones.png-73aff31a3ca689dc1883d30a98e7ac8a.stex" +type="CompressedTexture2D" +uid="uid://ck623hw34tsgp" +path="res://.godot/imported/com_zones.png-73aff31a3ca689dc1883d30a98e7ac8a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/com_zones.png" -dest_files=[ "res://.import/com_zones.png-73aff31a3ca689dc1883d30a98e7ac8a.stex" ] +dest_files=["res://.godot/imported/com_zones.png-73aff31a3ca689dc1883d30a98e7ac8a.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/com_zones_3x3.png.import b/assets/com_zones_3x3.png.import index b629bd7..a7543a6 100644 --- a/assets/com_zones_3x3.png.import +++ b/assets/com_zones_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/com_zones_3x3.png-f9cc879a925d9bedc3b267cebcb66473.stex" +type="CompressedTexture2D" +uid="uid://bl2ipi304w3m8" +path="res://.godot/imported/com_zones_3x3.png-f9cc879a925d9bedc3b267cebcb66473.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/com_zones_3x3.png" -dest_files=[ "res://.import/com_zones_3x3.png-f9cc879a925d9bedc3b267cebcb66473.stex" ] +dest_files=["res://.godot/imported/com_zones_3x3.png-f9cc879a925d9bedc3b267cebcb66473.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/firestation.png.import b/assets/firestation.png.import index 43e6220..deaba93 100644 --- a/assets/firestation.png.import +++ b/assets/firestation.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/firestation.png-13ae86212426ddb67a37120639e7afe5.stex" +type="CompressedTexture2D" +uid="uid://xvx7wagq6mtk" +path="res://.godot/imported/firestation.png-13ae86212426ddb67a37120639e7afe5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/firestation.png" -dest_files=[ "res://.import/firestation.png-13ae86212426ddb67a37120639e7afe5.stex" ] +dest_files=["res://.godot/imported/firestation.png-13ae86212426ddb67a37120639e7afe5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/firestation_3x3.png.import b/assets/firestation_3x3.png.import index f1156b2..348b01a 100644 --- a/assets/firestation_3x3.png.import +++ b/assets/firestation_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/firestation_3x3.png-8254c878391c7707d608155d4577538c.stex" +type="CompressedTexture2D" +uid="uid://dm8vovedihp2l" +path="res://.godot/imported/firestation_3x3.png-8254c878391c7707d608155d4577538c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/firestation_3x3.png" -dest_files=[ "res://.import/firestation_3x3.png-8254c878391c7707d608155d4577538c.stex" ] +dest_files=["res://.godot/imported/firestation_3x3.png-8254c878391c7707d608155d4577538c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/grass.tres b/assets/grass.tres index 21f2146..522e32d 100644 --- a/assets/grass.tres +++ b/assets/grass.tres @@ -1,6 +1,6 @@ [gd_resource type="TileSet" load_steps=2 format=2] -[ext_resource path="res://assets/terrain_cl.png" type="Texture" id=1] +[ext_resource path="res://assets/terrain_cl.png" type="Texture2D" id=1] diff --git a/assets/ind.png.import b/assets/ind.png.import index 2433a3e..9bc2eb4 100644 --- a/assets/ind.png.import +++ b/assets/ind.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind.png-bb73737182cfd8579c4f7f09ffedee47.stex" +type="CompressedTexture2D" +uid="uid://debxs61yf7p68" +path="res://.godot/imported/ind.png-bb73737182cfd8579c4f7f09ffedee47.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind.png" -dest_files=[ "res://.import/ind.png-bb73737182cfd8579c4f7f09ffedee47.stex" ] +dest_files=["res://.godot/imported/ind.png-bb73737182cfd8579c4f7f09ffedee47.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ind01_pistons_frames.png.import b/assets/ind01_pistons_frames.png.import index 794b06a..19027a8 100644 --- a/assets/ind01_pistons_frames.png.import +++ b/assets/ind01_pistons_frames.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind01_pistons_frames.png-febb54c649beb491f290ed4fdcf8c06e.stex" +type="CompressedTexture2D" +uid="uid://c4on0voeyks7v" +path="res://.godot/imported/ind01_pistons_frames.png-febb54c649beb491f290ed4fdcf8c06e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind01_pistons_frames.png" -dest_files=[ "res://.import/ind01_pistons_frames.png-febb54c649beb491f290ed4fdcf8c06e.stex" ] +dest_files=["res://.godot/imported/ind01_pistons_frames.png-febb54c649beb491f290ed4fdcf8c06e.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ind03_smoke_frames.png.import b/assets/ind03_smoke_frames.png.import index 78cfbf8..d28dae7 100644 --- a/assets/ind03_smoke_frames.png.import +++ b/assets/ind03_smoke_frames.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind03_smoke_frames.png-fc9549a4acf4a49bf4b4356dca5334c5.stex" +type="CompressedTexture2D" +uid="uid://jbx5dnduugsg" +path="res://.godot/imported/ind03_smoke_frames.png-fc9549a4acf4a49bf4b4356dca5334c5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind03_smoke_frames.png" -dest_files=[ "res://.import/ind03_smoke_frames.png-fc9549a4acf4a49bf4b4356dca5334c5.stex" ] +dest_files=["res://.godot/imported/ind03_smoke_frames.png-fc9549a4acf4a49bf4b4356dca5334c5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ind04_smoke_frames.png.import b/assets/ind04_smoke_frames.png.import index 84004cc..af24a17 100644 --- a/assets/ind04_smoke_frames.png.import +++ b/assets/ind04_smoke_frames.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind04_smoke_frames.png-9c43deacc8b8b37de8eb10bc6d16e83c.stex" +type="CompressedTexture2D" +uid="uid://d4h3ep4o0fsoj" +path="res://.godot/imported/ind04_smoke_frames.png-9c43deacc8b8b37de8eb10bc6d16e83c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind04_smoke_frames.png" -dest_files=[ "res://.import/ind04_smoke_frames.png-9c43deacc8b8b37de8eb10bc6d16e83c.stex" ] +dest_files=["res://.godot/imported/ind04_smoke_frames.png-9c43deacc8b8b37de8eb10bc6d16e83c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ind07_smoke_frames.png.import b/assets/ind07_smoke_frames.png.import index 3cc09fe..a9d5804 100644 --- a/assets/ind07_smoke_frames.png.import +++ b/assets/ind07_smoke_frames.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind07_smoke_frames.png-cad6b04ade7c2aa34a0b2e300357f180.stex" +type="CompressedTexture2D" +uid="uid://bryo3qyljsey" +path="res://.godot/imported/ind07_smoke_frames.png-cad6b04ade7c2aa34a0b2e300357f180.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind07_smoke_frames.png" -dest_files=[ "res://.import/ind07_smoke_frames.png-cad6b04ade7c2aa34a0b2e300357f180.stex" ] +dest_files=["res://.godot/imported/ind07_smoke_frames.png-cad6b04ade7c2aa34a0b2e300357f180.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ind08_smoke_frames.png.import b/assets/ind08_smoke_frames.png.import index ccede53..cedf2fb 100644 --- a/assets/ind08_smoke_frames.png.import +++ b/assets/ind08_smoke_frames.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind08_smoke_frames.png-7f1fed9d4383ffea8eb6f684833855ac.stex" +type="CompressedTexture2D" +uid="uid://d4cp5mss2uv7w" +path="res://.godot/imported/ind08_smoke_frames.png-7f1fed9d4383ffea8eb6f684833855ac.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind08_smoke_frames.png" -dest_files=[ "res://.import/ind08_smoke_frames.png-7f1fed9d4383ffea8eb6f684833855ac.stex" ] +dest_files=["res://.godot/imported/ind08_smoke_frames.png-7f1fed9d4383ffea8eb6f684833855ac.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ind_zones.png.import b/assets/ind_zones.png.import index 01a7d52..9154e27 100644 --- a/assets/ind_zones.png.import +++ b/assets/ind_zones.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind_zones.png-4d87593bcdc7db7dace32db883a4c0e5.stex" +type="CompressedTexture2D" +uid="uid://0r53hlvj06uv" +path="res://.godot/imported/ind_zones.png-4d87593bcdc7db7dace32db883a4c0e5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind_zones.png" -dest_files=[ "res://.import/ind_zones.png-4d87593bcdc7db7dace32db883a4c0e5.stex" ] +dest_files=["res://.godot/imported/ind_zones.png-4d87593bcdc7db7dace32db883a4c0e5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ind_zones_3x3.png.import b/assets/ind_zones_3x3.png.import index fd728c9..76597c0 100644 --- a/assets/ind_zones_3x3.png.import +++ b/assets/ind_zones_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/ind_zones_3x3.png-5f9b9c327fa4b43e53d689f9f159fae5.stex" +type="CompressedTexture2D" +uid="uid://sx4dm5v8agnl" +path="res://.godot/imported/ind_zones_3x3.png-5f9b9c327fa4b43e53d689f9f159fae5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ind_zones_3x3.png" -dest_files=[ "res://.import/ind_zones_3x3.png-5f9b9c327fa4b43e53d689f9f159fae5.stex" ] +dest_files=["res://.godot/imported/ind_zones_3x3.png-5f9b9c327fa4b43e53d689f9f159fae5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/misc_animation.png.import b/assets/misc_animation.png.import index 4d322c6..41b1a19 100644 --- a/assets/misc_animation.png.import +++ b/assets/misc_animation.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/misc_animation.png-ed5125d807ecd23c56b1bd44c2c5f42d.stex" +type="CompressedTexture2D" +uid="uid://ce300giexsynv" +path="res://.godot/imported/misc_animation.png-ed5125d807ecd23c56b1bd44c2c5f42d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/misc_animation.png" -dest_files=[ "res://.import/misc_animation.png-ed5125d807ecd23c56b1bd44c2c5f42d.stex" ] +dest_files=["res://.godot/imported/misc_animation.png-ed5125d807ecd23c56b1bd44c2c5f42d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/misc_animation_3x3.png.import b/assets/misc_animation_3x3.png.import index e41d322..fe79e9c 100644 --- a/assets/misc_animation_3x3.png.import +++ b/assets/misc_animation_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/misc_animation_3x3.png-e4ebc25a1b36148ba855a9f253c7d396.stex" +type="CompressedTexture2D" +uid="uid://cp7lfun7apuqv" +path="res://.godot/imported/misc_animation_3x3.png-e4ebc25a1b36148ba855a9f253c7d396.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/misc_animation_3x3.png" -dest_files=[ "res://.import/misc_animation_3x3.png-e4ebc25a1b36148ba855a9f253c7d396.stex" ] +dest_files=["res://.godot/imported/misc_animation_3x3.png-e4ebc25a1b36148ba855a9f253c7d396.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/nuclear.png.import b/assets/nuclear.png.import index 30549f9..1111410 100644 --- a/assets/nuclear.png.import +++ b/assets/nuclear.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/nuclear.png-ed6ca8d0acce6c4eebd6ec591546308f.stex" +type="CompressedTexture2D" +uid="uid://b8dta2mlc8mp" +path="res://.godot/imported/nuclear.png-ed6ca8d0acce6c4eebd6ec591546308f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/nuclear.png" -dest_files=[ "res://.import/nuclear.png-ed6ca8d0acce6c4eebd6ec591546308f.stex" ] +dest_files=["res://.godot/imported/nuclear.png-ed6ca8d0acce6c4eebd6ec591546308f.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/nuclear_3x3.png.import b/assets/nuclear_3x3.png.import index 3c454f5..c721301 100644 --- a/assets/nuclear_3x3.png.import +++ b/assets/nuclear_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/nuclear_3x3.png-fb42f75c6ef9332e3cde7f2d82cc59f1.stex" +type="CompressedTexture2D" +uid="uid://by3kbaxwv1pk2" +path="res://.godot/imported/nuclear_3x3.png-fb42f75c6ef9332e3cde7f2d82cc59f1.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/nuclear_3x3.png" -dest_files=[ "res://.import/nuclear_3x3.png-fb42f75c6ef9332e3cde7f2d82cc59f1.stex" ] +dest_files=["res://.godot/imported/nuclear_3x3.png-fb42f75c6ef9332e3cde7f2d82cc59f1.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/police.png.import b/assets/police.png.import index bb84060..f8997ca 100644 --- a/assets/police.png.import +++ b/assets/police.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/police.png-c54a2a3478b4cc0f62d853fedcfe8f17.stex" +type="CompressedTexture2D" +uid="uid://dvqdo2i8fifw3" +path="res://.godot/imported/police.png-c54a2a3478b4cc0f62d853fedcfe8f17.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/police.png" -dest_files=[ "res://.import/police.png-c54a2a3478b4cc0f62d853fedcfe8f17.stex" ] +dest_files=["res://.godot/imported/police.png-c54a2a3478b4cc0f62d853fedcfe8f17.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/police_3x3.png.import b/assets/police_3x3.png.import index 960f578..d8ebbdd 100644 --- a/assets/police_3x3.png.import +++ b/assets/police_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/police_3x3.png-a36e83cdafeb6f5bfeadd3abae33cdaa.stex" +type="CompressedTexture2D" +uid="uid://1bfrtxfucbll" +path="res://.godot/imported/police_3x3.png-a36e83cdafeb6f5bfeadd3abae33cdaa.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/police_3x3.png" -dest_files=[ "res://.import/police_3x3.png-a36e83cdafeb6f5bfeadd3abae33cdaa.stex" ] +dest_files=["res://.godot/imported/police_3x3.png-a36e83cdafeb6f5bfeadd3abae33cdaa.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/rails.png.import b/assets/rails.png.import index a9984cd..a233c9f 100644 --- a/assets/rails.png.import +++ b/assets/rails.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/rails.png-bb292791de41066410dafd1128e35427.stex" +type="CompressedTexture2D" +uid="uid://wptiikeh8tw6" +path="res://.godot/imported/rails.png-bb292791de41066410dafd1128e35427.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/rails.png" -dest_files=[ "res://.import/rails.png-bb292791de41066410dafd1128e35427.stex" ] +dest_files=["res://.godot/imported/rails.png-bb292791de41066410dafd1128e35427.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/rails_3x3.png.import b/assets/rails_3x3.png.import index f9f69a4..261ecc7 100644 --- a/assets/rails_3x3.png.import +++ b/assets/rails_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/rails_3x3.png-dfffff3186d9eb6e84819cde77feae85.stex" +type="CompressedTexture2D" +uid="uid://crcx6tvwc13ha" +path="res://.godot/imported/rails_3x3.png-dfffff3186d9eb6e84819cde77feae85.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/rails_3x3.png" -dest_files=[ "res://.import/rails_3x3.png-dfffff3186d9eb6e84819cde77feae85.stex" ] +dest_files=["res://.godot/imported/rails_3x3.png-dfffff3186d9eb6e84819cde77feae85.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/res.png.import b/assets/res.png.import index af7b440..20c132c 100644 --- a/assets/res.png.import +++ b/assets/res.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/res.png-6d53e8f770bf38e12df95eec2afffbfc.stex" +type="CompressedTexture2D" +uid="uid://cg5l2v47ooyqi" +path="res://.godot/imported/res.png-6d53e8f770bf38e12df95eec2afffbfc.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/res.png" -dest_files=[ "res://.import/res.png-6d53e8f770bf38e12df95eec2afffbfc.stex" ] +dest_files=["res://.godot/imported/res.png-6d53e8f770bf38e12df95eec2afffbfc.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/res_houses.png.import b/assets/res_houses.png.import index 1b495c8..84d7de4 100644 --- a/assets/res_houses.png.import +++ b/assets/res_houses.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/res_houses.png-a6472d67279464370b366a3bb9744875.stex" +type="CompressedTexture2D" +uid="uid://yj18kvi8jeox" +path="res://.godot/imported/res_houses.png-a6472d67279464370b366a3bb9744875.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/res_houses.png" -dest_files=[ "res://.import/res_houses.png-a6472d67279464370b366a3bb9744875.stex" ] +dest_files=["res://.godot/imported/res_houses.png-a6472d67279464370b366a3bb9744875.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/res_houses_3x3.png.import b/assets/res_houses_3x3.png.import index f720586..cfde63a 100644 --- a/assets/res_houses_3x3.png.import +++ b/assets/res_houses_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/res_houses_3x3.png-b26f697b1ee16e296a138e90ed316100.stex" +type="CompressedTexture2D" +uid="uid://ci1g3a6nl70i" +path="res://.godot/imported/res_houses_3x3.png-b26f697b1ee16e296a138e90ed316100.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/res_houses_3x3.png" -dest_files=[ "res://.import/res_houses_3x3.png-b26f697b1ee16e296a138e90ed316100.stex" ] +dest_files=["res://.godot/imported/res_houses_3x3.png-b26f697b1ee16e296a138e90ed316100.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/res_zones.png.import b/assets/res_zones.png.import index 44ee5e4..91ce11d 100644 --- a/assets/res_zones.png.import +++ b/assets/res_zones.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/res_zones.png-62e7acda545989362c43864d9147ebd8.stex" +type="CompressedTexture2D" +uid="uid://1dsu17awyp25" +path="res://.godot/imported/res_zones.png-62e7acda545989362c43864d9147ebd8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/res_zones.png" -dest_files=[ "res://.import/res_zones.png-62e7acda545989362c43864d9147ebd8.stex" ] +dest_files=["res://.godot/imported/res_zones.png-62e7acda545989362c43864d9147ebd8.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/res_zones_3x3.png.import b/assets/res_zones_3x3.png.import index 0d68b4c..d3d4b5b 100644 --- a/assets/res_zones_3x3.png.import +++ b/assets/res_zones_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/res_zones_3x3.png-b6eb7b1a01e6d7675b04d86782f987d7.stex" +type="CompressedTexture2D" +uid="uid://d04wfm4kmv438" +path="res://.godot/imported/res_zones_3x3.png-b6eb7b1a01e6d7675b04d86782f987d7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/res_zones_3x3.png" -dest_files=[ "res://.import/res_zones_3x3.png-b6eb7b1a01e6d7675b04d86782f987d7.stex" ] +dest_files=["res://.godot/imported/res_zones_3x3.png-b6eb7b1a01e6d7675b04d86782f987d7.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/roads.png.import b/assets/roads.png.import index 2f79f1c..ed08509 100644 --- a/assets/roads.png.import +++ b/assets/roads.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/roads.png-03a964f70dec0d82df7add58eae5fc98.stex" +type="CompressedTexture2D" +uid="uid://cmg2tbcsr7hl2" +path="res://.godot/imported/roads.png-03a964f70dec0d82df7add58eae5fc98.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/roads.png" -dest_files=[ "res://.import/roads.png-03a964f70dec0d82df7add58eae5fc98.stex" ] +dest_files=["res://.godot/imported/roads.png-03a964f70dec0d82df7add58eae5fc98.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/roads.tres b/assets/roads.tres index d46cf1c..ddff19e 100644 --- a/assets/roads.tres +++ b/assets/roads.tres @@ -1,6 +1,6 @@ [gd_resource type="TileSet" load_steps=2 format=2] -[ext_resource path="res://assets/roads.png" type="Texture" id=1] +[ext_resource path="res://assets/roads.png" type="Texture2D" id=1] diff --git a/assets/roads_3x3.png.import b/assets/roads_3x3.png.import index b9e545c..1370bcd 100644 --- a/assets/roads_3x3.png.import +++ b/assets/roads_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/roads_3x3.png-85573ef06b03d9b1c2274d87f44beb3b.stex" +type="CompressedTexture2D" +uid="uid://da52ya2g3kupc" +path="res://.godot/imported/roads_3x3.png-85573ef06b03d9b1c2274d87f44beb3b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/roads_3x3.png" -dest_files=[ "res://.import/roads_3x3.png-85573ef06b03d9b1c2274d87f44beb3b.stex" ] +dest_files=["res://.godot/imported/roads_3x3.png-85573ef06b03d9b1c2274d87f44beb3b.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/roadwire.png.import b/assets/roadwire.png.import index 5bbfaf8..0477d32 100644 --- a/assets/roadwire.png.import +++ b/assets/roadwire.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/roadwire.png-9ccec6aacbc67af5feed9004df029b52.stex" +type="CompressedTexture2D" +uid="uid://bvdnhx6ea8ine" +path="res://.godot/imported/roadwire.png-9ccec6aacbc67af5feed9004df029b52.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/roadwire.png" -dest_files=[ "res://.import/roadwire.png-9ccec6aacbc67af5feed9004df029b52.stex" ] +dest_files=["res://.godot/imported/roadwire.png-9ccec6aacbc67af5feed9004df029b52.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/roadwire_3x3.png.import b/assets/roadwire_3x3.png.import index 7f07a60..3258030 100644 --- a/assets/roadwire_3x3.png.import +++ b/assets/roadwire_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/roadwire_3x3.png-614fe813ed99e57548cb543d715f1d90.stex" +type="CompressedTexture2D" +uid="uid://derta1fh1l2xw" +path="res://.godot/imported/roadwire_3x3.png-614fe813ed99e57548cb543d715f1d90.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/roadwire_3x3.png" -dest_files=[ "res://.import/roadwire_3x3.png-614fe813ed99e57548cb543d715f1d90.stex" ] +dest_files=["res://.godot/imported/roadwire_3x3.png-614fe813ed99e57548cb543d715f1d90.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/seaport.png.import b/assets/seaport.png.import index 8368bc8..0d1d225 100644 --- a/assets/seaport.png.import +++ b/assets/seaport.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/seaport.png-9a246760d5f7b6b1b51d2a31a5aa6ead.stex" +type="CompressedTexture2D" +uid="uid://dijurc4r872rw" +path="res://.godot/imported/seaport.png-9a246760d5f7b6b1b51d2a31a5aa6ead.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/seaport.png" -dest_files=[ "res://.import/seaport.png-9a246760d5f7b6b1b51d2a31a5aa6ead.stex" ] +dest_files=["res://.godot/imported/seaport.png-9a246760d5f7b6b1b51d2a31a5aa6ead.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/seaport_3x3.png.import b/assets/seaport_3x3.png.import index 9b86ce6..4afbc40 100644 --- a/assets/seaport_3x3.png.import +++ b/assets/seaport_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/seaport_3x3.png-e2b705ac6f62dac2cec3d7ab55dfc0cf.stex" +type="CompressedTexture2D" +uid="uid://dsdvlp1j52gh6" +path="res://.godot/imported/seaport_3x3.png-e2b705ac6f62dac2cec3d7ab55dfc0cf.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/seaport_3x3.png" -dest_files=[ "res://.import/seaport_3x3.png-e2b705ac6f62dac2cec3d7ab55dfc0cf.stex" ] +dest_files=["res://.godot/imported/seaport_3x3.png-e2b705ac6f62dac2cec3d7ab55dfc0cf.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/snow-expansion.png.import b/assets/snow-expansion.png.import index 2288790..ee7942d 100644 --- a/assets/snow-expansion.png.import +++ b/assets/snow-expansion.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/snow-expansion.png-680de68a9d49e32b6f0c776ad61e5765.stex" +type="CompressedTexture2D" +uid="uid://rjcd3x2gfuel" +path="res://.godot/imported/snow-expansion.png-680de68a9d49e32b6f0c776ad61e5765.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/snow-expansion.png" -dest_files=[ "res://.import/snow-expansion.png-680de68a9d49e32b6f0c776ad61e5765.stex" ] +dest_files=["res://.godot/imported/snow-expansion.png-680de68a9d49e32b6f0c776ad61e5765.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/stadium.png.import b/assets/stadium.png.import index 108bb20..ac99748 100644 --- a/assets/stadium.png.import +++ b/assets/stadium.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/stadium.png-bf97ea476d2ec36ef41be76b64188fc2.stex" +type="CompressedTexture2D" +uid="uid://gdj7diw01pph" +path="res://.godot/imported/stadium.png-bf97ea476d2ec36ef41be76b64188fc2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/stadium.png" -dest_files=[ "res://.import/stadium.png-bf97ea476d2ec36ef41be76b64188fc2.stex" ] +dest_files=["res://.godot/imported/stadium.png-bf97ea476d2ec36ef41be76b64188fc2.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/stadium2.png.import b/assets/stadium2.png.import index ecfa9f7..047c55f 100644 --- a/assets/stadium2.png.import +++ b/assets/stadium2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/stadium2.png-e2d903e5612e246084ab988e30af5bf5.stex" +type="CompressedTexture2D" +uid="uid://ca46ygxppie6v" +path="res://.godot/imported/stadium2.png-e2d903e5612e246084ab988e30af5bf5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/stadium2.png" -dest_files=[ "res://.import/stadium2.png-e2d903e5612e246084ab988e30af5bf5.stex" ] +dest_files=["res://.godot/imported/stadium2.png-e2d903e5612e246084ab988e30af5bf5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/stadium2_3x3.png.import b/assets/stadium2_3x3.png.import index b4809cf..f69d723 100644 --- a/assets/stadium2_3x3.png.import +++ b/assets/stadium2_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/stadium2_3x3.png-d6cd6c5706680150f55158dfb67f1608.stex" +type="CompressedTexture2D" +uid="uid://b187060vnjvyf" +path="res://.godot/imported/stadium2_3x3.png-d6cd6c5706680150f55158dfb67f1608.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/stadium2_3x3.png" -dest_files=[ "res://.import/stadium2_3x3.png-d6cd6c5706680150f55158dfb67f1608.stex" ] +dest_files=["res://.godot/imported/stadium2_3x3.png-d6cd6c5706680150f55158dfb67f1608.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/stadium_3x3.png.import b/assets/stadium_3x3.png.import index 03c2bc0..4014c52 100644 --- a/assets/stadium_3x3.png.import +++ b/assets/stadium_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/stadium_3x3.png-e6f634deddc1b087c9f70150ac723679.stex" +type="CompressedTexture2D" +uid="uid://dpku5jxa8gf7j" +path="res://.godot/imported/stadium_3x3.png-e6f634deddc1b087c9f70150ac723679.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/stadium_3x3.png" -dest_files=[ "res://.import/stadium_3x3.png-e6f634deddc1b087c9f70150ac723679.stex" ] +dest_files=["res://.godot/imported/stadium_3x3.png-e6f634deddc1b087c9f70150ac723679.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/stadium_animation_gfx.png.import b/assets/stadium_animation_gfx.png.import index 946533a..31c4699 100644 --- a/assets/stadium_animation_gfx.png.import +++ b/assets/stadium_animation_gfx.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/stadium_animation_gfx.png-96f4d290b3eb0629e393d42569f26b9d.stex" +type="CompressedTexture2D" +uid="uid://b36l63xsnk8sl" +path="res://.godot/imported/stadium_animation_gfx.png-96f4d290b3eb0629e393d42569f26b9d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/stadium_animation_gfx.png" -dest_files=[ "res://.import/stadium_animation_gfx.png-96f4d290b3eb0629e393d42569f26b9d.stex" ] +dest_files=["res://.godot/imported/stadium_animation_gfx.png-96f4d290b3eb0629e393d42569f26b9d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/symbols/fontawesome/arrow-pointing-down.svg.import b/assets/symbols/fontawesome/arrow-pointing-down.svg.import index 21b0853..3ad6e05 100644 --- a/assets/symbols/fontawesome/arrow-pointing-down.svg.import +++ b/assets/symbols/fontawesome/arrow-pointing-down.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/arrow-pointing-down.svg-c9aa52b0394336f96523dce3a5a54811.stex" +type="CompressedTexture2D" +uid="uid://cvg3sure3qqiy" +path="res://.godot/imported/arrow-pointing-down.svg-c9aa52b0394336f96523dce3a5a54811.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/arrow-pointing-down.svg" -dest_files=[ "res://.import/arrow-pointing-down.svg-c9aa52b0394336f96523dce3a5a54811.stex" ] +dest_files=["res://.godot/imported/arrow-pointing-down.svg-c9aa52b0394336f96523dce3a5a54811.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/arrow-up.svg.import b/assets/symbols/fontawesome/arrow-up.svg.import index 9b0d8cb..b8f1dfb 100644 --- a/assets/symbols/fontawesome/arrow-up.svg.import +++ b/assets/symbols/fontawesome/arrow-up.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/arrow-up.svg-e43e77774dba43b70feba48caa912e60.stex" +type="CompressedTexture2D" +uid="uid://c2fufwjoor6kn" +path="res://.godot/imported/arrow-up.svg-e43e77774dba43b70feba48caa912e60.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/arrow-up.svg" -dest_files=[ "res://.import/arrow-up.svg-e43e77774dba43b70feba48caa912e60.stex" ] +dest_files=["res://.godot/imported/arrow-up.svg-e43e77774dba43b70feba48caa912e60.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/building.svg.import b/assets/symbols/fontawesome/building.svg.import index 8dd1b89..bcb7ebc 100644 --- a/assets/symbols/fontawesome/building.svg.import +++ b/assets/symbols/fontawesome/building.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/building.svg-91777c5853c28c239c3acdd26d5fd348.stex" +type="CompressedTexture2D" +uid="uid://4k7wy014ewgu" +path="res://.godot/imported/building.svg-91777c5853c28c239c3acdd26d5fd348.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/building.svg" -dest_files=[ "res://.import/building.svg-91777c5853c28c239c3acdd26d5fd348.stex" ] +dest_files=["res://.godot/imported/building.svg-91777c5853c28c239c3acdd26d5fd348.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/calendar.svg.import b/assets/symbols/fontawesome/calendar.svg.import index d80e2aa..0c4a44e 100644 --- a/assets/symbols/fontawesome/calendar.svg.import +++ b/assets/symbols/fontawesome/calendar.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/calendar.svg-3b191d50da0c230acb4f00f407671a80.stex" +type="CompressedTexture2D" +uid="uid://di6cca5sesotb" +path="res://.godot/imported/calendar.svg-3b191d50da0c230acb4f00f407671a80.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/calendar.svg" -dest_files=[ "res://.import/calendar.svg-3b191d50da0c230acb4f00f407671a80.stex" ] +dest_files=["res://.godot/imported/calendar.svg-3b191d50da0c230acb4f00f407671a80.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/city.svg.import b/assets/symbols/fontawesome/city.svg.import index a34c089..de1518b 100644 --- a/assets/symbols/fontawesome/city.svg.import +++ b/assets/symbols/fontawesome/city.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/city.svg-20a921314ac16573702c9e3da14d85b2.stex" +type="CompressedTexture2D" +uid="uid://dbex1q1210ma6" +path="res://.godot/imported/city.svg-20a921314ac16573702c9e3da14d85b2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/city.svg" -dest_files=[ "res://.import/city.svg-20a921314ac16573702c9e3da14d85b2.stex" ] +dest_files=["res://.godot/imported/city.svg-20a921314ac16573702c9e3da14d85b2.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/cogs.svg.import b/assets/symbols/fontawesome/cogs.svg.import index e986c88..8807262 100644 --- a/assets/symbols/fontawesome/cogs.svg.import +++ b/assets/symbols/fontawesome/cogs.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/cogs.svg-a9cb1bc33e8c16feb06b47174d6905cf.stex" +type="CompressedTexture2D" +uid="uid://dwmtn2go4ccq4" +path="res://.godot/imported/cogs.svg-a9cb1bc33e8c16feb06b47174d6905cf.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/cogs.svg" -dest_files=[ "res://.import/cogs.svg-a9cb1bc33e8c16feb06b47174d6905cf.stex" ] +dest_files=["res://.godot/imported/cogs.svg-a9cb1bc33e8c16feb06b47174d6905cf.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/coins.svg.import b/assets/symbols/fontawesome/coins.svg.import index 805a49a..1d02dcb 100644 --- a/assets/symbols/fontawesome/coins.svg.import +++ b/assets/symbols/fontawesome/coins.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/coins.svg-9d7bd0d4fb96d40d71789b72e9127947.stex" +type="CompressedTexture2D" +uid="uid://dd2iupgln06b0" +path="res://.godot/imported/coins.svg-9d7bd0d4fb96d40d71789b72e9127947.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/coins.svg" -dest_files=[ "res://.import/coins.svg-9d7bd0d4fb96d40d71789b72e9127947.stex" ] +dest_files=["res://.godot/imported/coins.svg-9d7bd0d4fb96d40d71789b72e9127947.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/comments.svg.import b/assets/symbols/fontawesome/comments.svg.import index e714072..1f41596 100644 --- a/assets/symbols/fontawesome/comments.svg.import +++ b/assets/symbols/fontawesome/comments.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/comments.svg-8a347802726f36aad73893a0bb48c7d2.stex" +type="CompressedTexture2D" +uid="uid://c68mkh52bnus5" +path="res://.godot/imported/comments.svg-8a347802726f36aad73893a0bb48c7d2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/comments.svg" -dest_files=[ "res://.import/comments.svg-8a347802726f36aad73893a0bb48c7d2.stex" ] +dest_files=["res://.godot/imported/comments.svg-8a347802726f36aad73893a0bb48c7d2.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/envelope-open.svg.import b/assets/symbols/fontawesome/envelope-open.svg.import index 03cf370..f3e53ef 100644 --- a/assets/symbols/fontawesome/envelope-open.svg.import +++ b/assets/symbols/fontawesome/envelope-open.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/envelope-open.svg-d8714e9c1dce8798df1e5729948134dc.stex" +type="CompressedTexture2D" +uid="uid://diusmdai74whq" +path="res://.godot/imported/envelope-open.svg-d8714e9c1dce8798df1e5729948134dc.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/envelope-open.svg" -dest_files=[ "res://.import/envelope-open.svg-d8714e9c1dce8798df1e5729948134dc.stex" ] +dest_files=["res://.godot/imported/envelope-open.svg-d8714e9c1dce8798df1e5729948134dc.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/envelope.svg.import b/assets/symbols/fontawesome/envelope.svg.import index d21fd22..9a87c5a 100644 --- a/assets/symbols/fontawesome/envelope.svg.import +++ b/assets/symbols/fontawesome/envelope.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/envelope.svg-a1acb28bf1508985f729840d5ca83c5a.stex" +type="CompressedTexture2D" +uid="uid://dh8gjccbvuay1" +path="res://.godot/imported/envelope.svg-a1acb28bf1508985f729840d5ca83c5a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/envelope.svg" -dest_files=[ "res://.import/envelope.svg-a1acb28bf1508985f729840d5ca83c5a.stex" ] +dest_files=["res://.godot/imported/envelope.svg-a1acb28bf1508985f729840d5ca83c5a.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/fast.svg.import b/assets/symbols/fontawesome/fast.svg.import index dcfa5e8..e5bdcd9 100644 --- a/assets/symbols/fontawesome/fast.svg.import +++ b/assets/symbols/fontawesome/fast.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/fast.svg-ff06e3c1ba80902ad75a6c6aa7af8327.stex" +type="CompressedTexture2D" +uid="uid://bkdd525ttr0c6" +path="res://.godot/imported/fast.svg-ff06e3c1ba80902ad75a6c6aa7af8327.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/fast.svg" -dest_files=[ "res://.import/fast.svg-ff06e3c1ba80902ad75a6c6aa7af8327.stex" ] +dest_files=["res://.godot/imported/fast.svg-ff06e3c1ba80902ad75a6c6aa7af8327.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/folder-open.svg.import b/assets/symbols/fontawesome/folder-open.svg.import index 9bb8c3d..63435dd 100644 --- a/assets/symbols/fontawesome/folder-open.svg.import +++ b/assets/symbols/fontawesome/folder-open.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/folder-open.svg-d5ce26ce51094a1b38855aa60c9afd73.stex" +type="CompressedTexture2D" +uid="uid://b3ew7m7n4mm76" +path="res://.godot/imported/folder-open.svg-d5ce26ce51094a1b38855aa60c9afd73.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/folder-open.svg" -dest_files=[ "res://.import/folder-open.svg-d5ce26ce51094a1b38855aa60c9afd73.stex" ] +dest_files=["res://.godot/imported/folder-open.svg-d5ce26ce51094a1b38855aa60c9afd73.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/folder.svg.import b/assets/symbols/fontawesome/folder.svg.import index 1cf8340..e0370ac 100644 --- a/assets/symbols/fontawesome/folder.svg.import +++ b/assets/symbols/fontawesome/folder.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/folder.svg-6484ed95c1b8ecc69742b5327463125d.stex" +type="CompressedTexture2D" +uid="uid://gu16og5rsndk" +path="res://.godot/imported/folder.svg-6484ed95c1b8ecc69742b5327463125d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/folder.svg" -dest_files=[ "res://.import/folder.svg-6484ed95c1b8ecc69742b5327463125d.stex" ] +dest_files=["res://.godot/imported/folder.svg-6484ed95c1b8ecc69742b5327463125d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/github-sign.svg.import b/assets/symbols/fontawesome/github-sign.svg.import index ae2b198..63dc021 100644 --- a/assets/symbols/fontawesome/github-sign.svg.import +++ b/assets/symbols/fontawesome/github-sign.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/github-sign.svg-c3f6b853883308851dc1c77e6f3ff4d3.stex" +type="CompressedTexture2D" +uid="uid://m1l741gdk36w" +path="res://.godot/imported/github-sign.svg-c3f6b853883308851dc1c77e6f3ff4d3.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/github-sign.svg" -dest_files=[ "res://.import/github-sign.svg-c3f6b853883308851dc1c77e6f3ff4d3.stex" ] +dest_files=["res://.godot/imported/github-sign.svg-c3f6b853883308851dc1c77e6f3ff4d3.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/graph.svg.import b/assets/symbols/fontawesome/graph.svg.import index c19f856..6a094d6 100644 --- a/assets/symbols/fontawesome/graph.svg.import +++ b/assets/symbols/fontawesome/graph.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/graph.svg-199d196edbe8b47b41d780651950e171.stex" +type="CompressedTexture2D" +uid="uid://d255daubc7hsf" +path="res://.godot/imported/graph.svg-199d196edbe8b47b41d780651950e171.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/graph.svg" -dest_files=[ "res://.import/graph.svg-199d196edbe8b47b41d780651950e171.stex" ] +dest_files=["res://.godot/imported/graph.svg-199d196edbe8b47b41d780651950e171.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/layer-group.svg.import b/assets/symbols/fontawesome/layer-group.svg.import index 523aab2..e499efe 100644 --- a/assets/symbols/fontawesome/layer-group.svg.import +++ b/assets/symbols/fontawesome/layer-group.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/layer-group.svg-86b770a642eb86675d7e4453e08912b7.stex" +type="CompressedTexture2D" +uid="uid://bv022sq1fdww0" +path="res://.godot/imported/layer-group.svg-86b770a642eb86675d7e4453e08912b7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/layer-group.svg" -dest_files=[ "res://.import/layer-group.svg-86b770a642eb86675d7e4453e08912b7.stex" ] +dest_files=["res://.godot/imported/layer-group.svg-86b770a642eb86675d7e4453e08912b7.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/meet.svg.import b/assets/symbols/fontawesome/meet.svg.import index b1eb334..8d34b46 100644 --- a/assets/symbols/fontawesome/meet.svg.import +++ b/assets/symbols/fontawesome/meet.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/meet.svg-4b1fabdabe3401d4783165b4c370065d.stex" +type="CompressedTexture2D" +uid="uid://cgahx3axjhpvw" +path="res://.godot/imported/meet.svg-4b1fabdabe3401d4783165b4c370065d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/meet.svg" -dest_files=[ "res://.import/meet.svg-4b1fabdabe3401d4783165b4c370065d.stex" ] +dest_files=["res://.godot/imported/meet.svg-4b1fabdabe3401d4783165b4c370065d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/pie-chart.svg.import b/assets/symbols/fontawesome/pie-chart.svg.import index 7fc62c2..cf6d73c 100644 --- a/assets/symbols/fontawesome/pie-chart.svg.import +++ b/assets/symbols/fontawesome/pie-chart.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/pie-chart.svg-f84e08ca4723420929651be804f93a48.stex" +type="CompressedTexture2D" +uid="uid://cjl7a20b73hy" +path="res://.godot/imported/pie-chart.svg-f84e08ca4723420929651be804f93a48.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/pie-chart.svg" -dest_files=[ "res://.import/pie-chart.svg-f84e08ca4723420929651be804f93a48.stex" ] +dest_files=["res://.godot/imported/pie-chart.svg-f84e08ca4723420929651be804f93a48.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/population.svg.import b/assets/symbols/fontawesome/population.svg.import index 309081a..3da2648 100644 --- a/assets/symbols/fontawesome/population.svg.import +++ b/assets/symbols/fontawesome/population.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/population.svg-6de72ac836deb6ae086de827f0b3f2bc.stex" +type="CompressedTexture2D" +uid="uid://b61d6qrrg1sl8" +path="res://.godot/imported/population.svg-6de72ac836deb6ae086de827f0b3f2bc.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/population.svg" -dest_files=[ "res://.import/population.svg-6de72ac836deb6ae086de827f0b3f2bc.stex" ] +dest_files=["res://.godot/imported/population.svg-6de72ac836deb6ae086de827f0b3f2bc.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/question-circle.svg.import b/assets/symbols/fontawesome/question-circle.svg.import index db1bc81..fffdfde 100644 --- a/assets/symbols/fontawesome/question-circle.svg.import +++ b/assets/symbols/fontawesome/question-circle.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/question-circle.svg-b132cd1b61a67ed6fb7c7da24194154f.stex" +type="CompressedTexture2D" +uid="uid://da4uw4jhoeob3" +path="res://.godot/imported/question-circle.svg-b132cd1b61a67ed6fb7c7da24194154f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/question-circle.svg" -dest_files=[ "res://.import/question-circle.svg-b132cd1b61a67ed6fb7c7da24194154f.stex" ] +dest_files=["res://.godot/imported/question-circle.svg-b132cd1b61a67ed6fb7c7da24194154f.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/slow.svg.import b/assets/symbols/fontawesome/slow.svg.import index 690b955..7bb6d55 100644 --- a/assets/symbols/fontawesome/slow.svg.import +++ b/assets/symbols/fontawesome/slow.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/slow.svg-6864d43130676813d9aa149292909080.stex" +type="CompressedTexture2D" +uid="uid://djjgnuh7kaplo" +path="res://.godot/imported/slow.svg-6864d43130676813d9aa149292909080.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/slow.svg" -dest_files=[ "res://.import/slow.svg-6864d43130676813d9aa149292909080.stex" ] +dest_files=["res://.godot/imported/slow.svg-6864d43130676813d9aa149292909080.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/spinner.svg.import b/assets/symbols/fontawesome/spinner.svg.import index 566fb1e..4bb66b8 100644 --- a/assets/symbols/fontawesome/spinner.svg.import +++ b/assets/symbols/fontawesome/spinner.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/spinner.svg-761e7eb15f4e9c7867836e61f843b74e.stex" +type="CompressedTexture2D" +uid="uid://crcnam2plruqa" +path="res://.godot/imported/spinner.svg-761e7eb15f4e9c7867836e61f843b74e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/spinner.svg" -dest_files=[ "res://.import/spinner.svg-761e7eb15f4e9c7867836e61f843b74e.stex" ] +dest_files=["res://.godot/imported/spinner.svg-761e7eb15f4e9c7867836e61f843b74e.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/thumbs-down.svg.import b/assets/symbols/fontawesome/thumbs-down.svg.import index bd1afea..561d735 100644 --- a/assets/symbols/fontawesome/thumbs-down.svg.import +++ b/assets/symbols/fontawesome/thumbs-down.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/thumbs-down.svg-fa73928babf35e6be76b1c23e6a04d26.stex" +type="CompressedTexture2D" +uid="uid://ccskscv4dg3jf" +path="res://.godot/imported/thumbs-down.svg-fa73928babf35e6be76b1c23e6a04d26.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/thumbs-down.svg" -dest_files=[ "res://.import/thumbs-down.svg-fa73928babf35e6be76b1c23e6a04d26.stex" ] +dest_files=["res://.godot/imported/thumbs-down.svg-fa73928babf35e6be76b1c23e6a04d26.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/symbols/fontawesome/thumbs-up.svg.import b/assets/symbols/fontawesome/thumbs-up.svg.import index 11ab1cb..009cf9b 100644 --- a/assets/symbols/fontawesome/thumbs-up.svg.import +++ b/assets/symbols/fontawesome/thumbs-up.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/thumbs-up.svg-b1e3416c5dc4257eda54e28bd24a580c.stex" +type="CompressedTexture2D" +uid="uid://cmslc2fgeyn3q" +path="res://.godot/imported/thumbs-up.svg-b1e3416c5dc4257eda54e28bd24a580c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/symbols/fontawesome/thumbs-up.svg" -dest_files=[ "res://.import/thumbs-up.svg-b1e3416c5dc4257eda54e28bd24a580c.stex" ] +dest_files=["res://.godot/imported/thumbs-up.svg-b1e3416c5dc4257eda54e28bd24a580c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/terrain.png.import b/assets/terrain.png.import index a7bc572..b6a6022 100644 --- a/assets/terrain.png.import +++ b/assets/terrain.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/terrain.png-02334d89f314a8996b3c48f78734ffd5.stex" +type="CompressedTexture2D" +uid="uid://cf0ew8x5ojq73" +path="res://.godot/imported/terrain.png-02334d89f314a8996b3c48f78734ffd5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/terrain.png" -dest_files=[ "res://.import/terrain.png-02334d89f314a8996b3c48f78734ffd5.stex" ] +dest_files=["res://.godot/imported/terrain.png-02334d89f314a8996b3c48f78734ffd5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/terrain_3x3.png.import b/assets/terrain_3x3.png.import index 0fcbb66..d4eeb84 100644 --- a/assets/terrain_3x3.png.import +++ b/assets/terrain_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/terrain_3x3.png-a864cfd2191c52bdb45f1805ebbd3193.stex" +type="CompressedTexture2D" +uid="uid://cxnmo0y66q4qh" +path="res://.godot/imported/terrain_3x3.png-a864cfd2191c52bdb45f1805ebbd3193.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/terrain_3x3.png" -dest_files=[ "res://.import/terrain_3x3.png-a864cfd2191c52bdb45f1805ebbd3193.stex" ] +dest_files=["res://.godot/imported/terrain_3x3.png-a864cfd2191c52bdb45f1805ebbd3193.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/terrain_cl.png.import b/assets/terrain_cl.png.import index 9c96660..42e2068 100644 --- a/assets/terrain_cl.png.import +++ b/assets/terrain_cl.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/terrain_cl.png-9bdb9660ea4d77c50e4b90d3c14bcaea.stex" +type="CompressedTexture2D" +uid="uid://bd2x6tip13axk" +path="res://.godot/imported/terrain_cl.png-9bdb9660ea4d77c50e4b90d3c14bcaea.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/terrain_cl.png" -dest_files=[ "res://.import/terrain_cl.png-9bdb9660ea4d77c50e4b90d3c14bcaea.stex" ] +dest_files=["res://.godot/imported/terrain_cl.png-9bdb9660ea4d77c50e4b90d3c14bcaea.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/terrian.tres b/assets/terrian.tres index 4991f26..fa9f069 100644 --- a/assets/terrian.tres +++ b/assets/terrian.tres @@ -1,6 +1,6 @@ [gd_resource type="TileSet" load_steps=2 format=2] -[ext_resource path="res://assets/terrain_cl.png" type="Texture" id=1] +[ext_resource path="res://assets/terrain_cl.png" type="Texture2D" id=1] diff --git a/assets/ticker/pawprint-logo.svg.import b/assets/ticker/pawprint-logo.svg.import index d4a931f..1f1b929 100644 --- a/assets/ticker/pawprint-logo.svg.import +++ b/assets/ticker/pawprint-logo.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/pawprint-logo.svg-f33569ddfdeabc9ffb0b78f564117520.stex" +type="CompressedTexture2D" +uid="uid://c2xopodwyxq1" +path="res://.godot/imported/pawprint-logo.svg-f33569ddfdeabc9ffb0b78f564117520.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/ticker/pawprint-logo.svg" -dest_files=[ "res://.import/pawprint-logo.svg-f33569ddfdeabc9ffb0b78f564117520.stex" ] +dest_files=["res://.godot/imported/pawprint-logo.svg-f33569ddfdeabc9ffb0b78f564117520.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/traffic_frames.png.import b/assets/traffic_frames.png.import index 233ddfe..d3eaf34 100644 --- a/assets/traffic_frames.png.import +++ b/assets/traffic_frames.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/traffic_frames.png-3d9fde8596b40b06f42ed7760a648d2d.stex" +type="CompressedTexture2D" +uid="uid://dj5bdtxmflds3" +path="res://.godot/imported/traffic_frames.png-3d9fde8596b40b06f42ed7760a648d2d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/traffic_frames.png" -dest_files=[ "res://.import/traffic_frames.png-3d9fde8596b40b06f42ed7760a648d2d.stex" ] +dest_files=["res://.godot/imported/traffic_frames.png-3d9fde8596b40b06f42ed7760a648d2d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/traffic_frames_3x3.png.import b/assets/traffic_frames_3x3.png.import index b4b8d20..febd043 100644 --- a/assets/traffic_frames_3x3.png.import +++ b/assets/traffic_frames_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/traffic_frames_3x3.png-5e7ebc0c5154afd8d5bae4e39b02ba0f.stex" +type="CompressedTexture2D" +uid="uid://q0ni4ggjjodv" +path="res://.godot/imported/traffic_frames_3x3.png-5e7ebc0c5154afd8d5bae4e39b02ba0f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/traffic_frames_3x3.png" -dest_files=[ "res://.import/traffic_frames_3x3.png-5e7ebc0c5154afd8d5bae4e39b02ba0f.stex" ] +dest_files=["res://.godot/imported/traffic_frames_3x3.png-5e7ebc0c5154afd8d5bae4e39b02ba0f.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/airport.png.import b/assets/ui/airport.png.import index d2c2da3..7412dfa 100644 --- a/assets/ui/airport.png.import +++ b/assets/ui/airport.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/airport.png-a4eef15d796dae17672da14cdbd08010.stex" +type="CompressedTexture2D" +uid="uid://dn17qpjc1ai20" +path="res://.godot/imported/airport.png-a4eef15d796dae17672da14cdbd08010.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/airport.png" -dest_files=[ "res://.import/airport.png-a4eef15d796dae17672da14cdbd08010.stex" ] +dest_files=["res://.godot/imported/airport.png-a4eef15d796dae17672da14cdbd08010.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/coal.png.import b/assets/ui/coal.png.import index f83677e..86588e2 100644 --- a/assets/ui/coal.png.import +++ b/assets/ui/coal.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/coal.png-36bad1d661039b414e8db757d31572d9.stex" +type="CompressedTexture2D" +uid="uid://dfcqxlejp0g4n" +path="res://.godot/imported/coal.png-36bad1d661039b414e8db757d31572d9.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/coal.png" -dest_files=[ "res://.import/coal.png-36bad1d661039b414e8db757d31572d9.stex" ] +dest_files=["res://.godot/imported/coal.png-36bad1d661039b414e8db757d31572d9.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/com.png.import b/assets/ui/com.png.import index 7b0d8cd..56441a4 100644 --- a/assets/ui/com.png.import +++ b/assets/ui/com.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/com.png-7e2400e34b2eb8e8c733483c1daccbef.stex" +type="CompressedTexture2D" +uid="uid://blvfjq7rla3lw" +path="res://.godot/imported/com.png-7e2400e34b2eb8e8c733483c1daccbef.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/com.png" -dest_files=[ "res://.import/com.png-7e2400e34b2eb8e8c733483c1daccbef.stex" ] +dest_files=["res://.godot/imported/com.png-7e2400e34b2eb8e8c733483c1daccbef.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/demandg.png.import b/assets/ui/demandg.png.import index b6a521c..17a7a85 100644 --- a/assets/ui/demandg.png.import +++ b/assets/ui/demandg.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/demandg.png-1ddc79f25b862f007bc718206d9406d5.stex" +type="CompressedTexture2D" +uid="uid://bevdprax0uo0n" +path="res://.godot/imported/demandg.png-1ddc79f25b862f007bc718206d9406d5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/demandg.png" -dest_files=[ "res://.import/demandg.png-1ddc79f25b862f007bc718206d9406d5.stex" ] +dest_files=["res://.godot/imported/demandg.png-1ddc79f25b862f007bc718206d9406d5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/dropdownBottom.png.import b/assets/ui/dropdownBottom.png.import index 3b60e9e..37ccb2d 100644 --- a/assets/ui/dropdownBottom.png.import +++ b/assets/ui/dropdownBottom.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/dropdownBottom.png-d9166e880d03f4b69c5616d0037a7d28.stex" +type="CompressedTexture2D" +uid="uid://do0uw1sbcldcc" +path="res://.godot/imported/dropdownBottom.png-d9166e880d03f4b69c5616d0037a7d28.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/dropdownBottom.png" -dest_files=[ "res://.import/dropdownBottom.png-d9166e880d03f4b69c5616d0037a7d28.stex" ] +dest_files=["res://.godot/imported/dropdownBottom.png-d9166e880d03f4b69c5616d0037a7d28.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/dropdownMid.png.import b/assets/ui/dropdownMid.png.import index f7c82b9..5439372 100644 --- a/assets/ui/dropdownMid.png.import +++ b/assets/ui/dropdownMid.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/dropdownMid.png-438e664b24bb973bbcd4c5dc23e9e44d.stex" +type="CompressedTexture2D" +uid="uid://l8lq5ec6nkcn" +path="res://.godot/imported/dropdownMid.png-438e664b24bb973bbcd4c5dc23e9e44d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/dropdownMid.png" -dest_files=[ "res://.import/dropdownMid.png-438e664b24bb973bbcd4c5dc23e9e44d.stex" ] +dest_files=["res://.godot/imported/dropdownMid.png-438e664b24bb973bbcd4c5dc23e9e44d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/dropdownTop.png.import b/assets/ui/dropdownTop.png.import index febf9f6..47094de 100644 --- a/assets/ui/dropdownTop.png.import +++ b/assets/ui/dropdownTop.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/dropdownTop.png-3fb4eb0825bf0cb543b3e59ccff3ce3c.stex" +type="CompressedTexture2D" +uid="uid://con6c73ky56k8" +path="res://.godot/imported/dropdownTop.png-3fb4eb0825bf0cb543b3e59ccff3ce3c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/dropdownTop.png" -dest_files=[ "res://.import/dropdownTop.png-3fb4eb0825bf0cb543b3e59ccff3ce3c.stex" ] +dest_files=["res://.godot/imported/dropdownTop.png-3fb4eb0825bf0cb543b3e59ccff3ce3c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/fire.png.import b/assets/ui/fire.png.import index 1bfa6d2..a5805f5 100644 --- a/assets/ui/fire.png.import +++ b/assets/ui/fire.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/fire.png-f80bbe6bdfd9788710a2084de197fbe1.stex" +type="CompressedTexture2D" +uid="uid://ctj844a4prctx" +path="res://.godot/imported/fire.png-f80bbe6bdfd9788710a2084de197fbe1.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/fire.png" -dest_files=[ "res://.import/fire.png-f80bbe6bdfd9788710a2084de197fbe1.stex" ] +dest_files=["res://.godot/imported/fire.png-f80bbe6bdfd9788710a2084de197fbe1.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grcom.png.import b/assets/ui/grcom.png.import index 0c9db75..31a2cb2 100644 --- a/assets/ui/grcom.png.import +++ b/assets/ui/grcom.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grcom.png-295c5a36932d67a2731a5603500cd513.stex" +type="CompressedTexture2D" +uid="uid://dij8pjaph73jx" +path="res://.godot/imported/grcom.png-295c5a36932d67a2731a5603500cd513.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grcom.png" -dest_files=[ "res://.import/grcom.png-295c5a36932d67a2731a5603500cd513.stex" ] +dest_files=["res://.godot/imported/grcom.png-295c5a36932d67a2731a5603500cd513.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grcomhi.png.import b/assets/ui/grcomhi.png.import index 76ed318..46b5ad7 100644 --- a/assets/ui/grcomhi.png.import +++ b/assets/ui/grcomhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grcomhi.png-db2a930810201220708c0e4a3f0c2f64.stex" +type="CompressedTexture2D" +uid="uid://b6v06003fc67j" +path="res://.godot/imported/grcomhi.png-db2a930810201220708c0e4a3f0c2f64.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grcomhi.png" -dest_files=[ "res://.import/grcomhi.png-db2a930810201220708c0e4a3f0c2f64.stex" ] +dest_files=["res://.godot/imported/grcomhi.png-db2a930810201220708c0e4a3f0c2f64.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grcrim.png.import b/assets/ui/grcrim.png.import index 89822f9..512b7e9 100644 --- a/assets/ui/grcrim.png.import +++ b/assets/ui/grcrim.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grcrim.png-906b2c41c90a4305e01cedc5050a04f8.stex" +type="CompressedTexture2D" +uid="uid://dbyiikaf48ha" +path="res://.godot/imported/grcrim.png-906b2c41c90a4305e01cedc5050a04f8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grcrim.png" -dest_files=[ "res://.import/grcrim.png-906b2c41c90a4305e01cedc5050a04f8.stex" ] +dest_files=["res://.godot/imported/grcrim.png-906b2c41c90a4305e01cedc5050a04f8.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grcrimhi.png.import b/assets/ui/grcrimhi.png.import index d66602e..d61ec80 100644 --- a/assets/ui/grcrimhi.png.import +++ b/assets/ui/grcrimhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grcrimhi.png-7b583c3675f492c8f8cd0c3fa942cb66.stex" +type="CompressedTexture2D" +uid="uid://c3k3lt2lpftxd" +path="res://.godot/imported/grcrimhi.png-7b583c3675f492c8f8cd0c3fa942cb66.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grcrimhi.png" -dest_files=[ "res://.import/grcrimhi.png-7b583c3675f492c8f8cd0c3fa942cb66.stex" ] +dest_files=["res://.godot/imported/grcrimhi.png-7b583c3675f492c8f8cd0c3fa942cb66.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grind.png.import b/assets/ui/grind.png.import index c12cd5d..a07ac4c 100644 --- a/assets/ui/grind.png.import +++ b/assets/ui/grind.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grind.png-62f9ed563ab6831d4657b00f21438b6e.stex" +type="CompressedTexture2D" +uid="uid://bf1j5phwv2m6h" +path="res://.godot/imported/grind.png-62f9ed563ab6831d4657b00f21438b6e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grind.png" -dest_files=[ "res://.import/grind.png-62f9ed563ab6831d4657b00f21438b6e.stex" ] +dest_files=["res://.godot/imported/grind.png-62f9ed563ab6831d4657b00f21438b6e.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grindhi.png.import b/assets/ui/grindhi.png.import index 6f49516..e438b28 100644 --- a/assets/ui/grindhi.png.import +++ b/assets/ui/grindhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grindhi.png-4a415910fc75798349fb976be31b5ebf.stex" +type="CompressedTexture2D" +uid="uid://cj2ll00fcmfc3" +path="res://.godot/imported/grindhi.png-4a415910fc75798349fb976be31b5ebf.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grindhi.png" -dest_files=[ "res://.import/grindhi.png-4a415910fc75798349fb976be31b5ebf.stex" ] +dest_files=["res://.godot/imported/grindhi.png-4a415910fc75798349fb976be31b5ebf.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grmony.png.import b/assets/ui/grmony.png.import index cb3f230..01f34ff 100644 --- a/assets/ui/grmony.png.import +++ b/assets/ui/grmony.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grmony.png-eb548c5a3c5189d8db943fbdd7701799.stex" +type="CompressedTexture2D" +uid="uid://2i6vtkyk383r" +path="res://.godot/imported/grmony.png-eb548c5a3c5189d8db943fbdd7701799.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grmony.png" -dest_files=[ "res://.import/grmony.png-eb548c5a3c5189d8db943fbdd7701799.stex" ] +dest_files=["res://.godot/imported/grmony.png-eb548c5a3c5189d8db943fbdd7701799.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grmonyhi.png.import b/assets/ui/grmonyhi.png.import index ebbc563..e88b47e 100644 --- a/assets/ui/grmonyhi.png.import +++ b/assets/ui/grmonyhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grmonyhi.png-982dbea50a47ad6df8cdbc712fc2b1ad.stex" +type="CompressedTexture2D" +uid="uid://dy3ghxve5j687" +path="res://.godot/imported/grmonyhi.png-982dbea50a47ad6df8cdbc712fc2b1ad.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grmonyhi.png" -dest_files=[ "res://.import/grmonyhi.png-982dbea50a47ad6df8cdbc712fc2b1ad.stex" ] +dest_files=["res://.godot/imported/grmonyhi.png-982dbea50a47ad6df8cdbc712fc2b1ad.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grpoll.png.import b/assets/ui/grpoll.png.import index 6c9d7b9..e783a9b 100644 --- a/assets/ui/grpoll.png.import +++ b/assets/ui/grpoll.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grpoll.png-7749b411112ad372c693ecc34fc2cc08.stex" +type="CompressedTexture2D" +uid="uid://bk0ilrahyoyqx" +path="res://.godot/imported/grpoll.png-7749b411112ad372c693ecc34fc2cc08.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grpoll.png" -dest_files=[ "res://.import/grpoll.png-7749b411112ad372c693ecc34fc2cc08.stex" ] +dest_files=["res://.godot/imported/grpoll.png-7749b411112ad372c693ecc34fc2cc08.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grpollhi.png.import b/assets/ui/grpollhi.png.import index e39c209..8f300d8 100644 --- a/assets/ui/grpollhi.png.import +++ b/assets/ui/grpollhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grpollhi.png-a964f503cd5ee5df6c6646d92f702823.stex" +type="CompressedTexture2D" +uid="uid://dxawb0mrbkh88" +path="res://.godot/imported/grpollhi.png-a964f503cd5ee5df6c6646d92f702823.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grpollhi.png" -dest_files=[ "res://.import/grpollhi.png-a964f503cd5ee5df6c6646d92f702823.stex" ] +dest_files=["res://.godot/imported/grpollhi.png-a964f503cd5ee5df6c6646d92f702823.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grres.png.import b/assets/ui/grres.png.import index 6a7095c..02a5462 100644 --- a/assets/ui/grres.png.import +++ b/assets/ui/grres.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grres.png-995b910f06aa1643a87856659e3c5ab7.stex" +type="CompressedTexture2D" +uid="uid://54y8ceawux6u" +path="res://.godot/imported/grres.png-995b910f06aa1643a87856659e3c5ab7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grres.png" -dest_files=[ "res://.import/grres.png-995b910f06aa1643a87856659e3c5ab7.stex" ] +dest_files=["res://.godot/imported/grres.png-995b910f06aa1643a87856659e3c5ab7.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/grreshi.png.import b/assets/ui/grreshi.png.import index 374ae42..aa8f985 100644 --- a/assets/ui/grreshi.png.import +++ b/assets/ui/grreshi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/grreshi.png-8aabfbc7ee47be9ffaeff61c53a71db7.stex" +type="CompressedTexture2D" +uid="uid://dn6821ry183i" +path="res://.godot/imported/grreshi.png-8aabfbc7ee47be9ffaeff61c53a71db7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/grreshi.png" -dest_files=[ "res://.import/grreshi.png-8aabfbc7ee47be9ffaeff61c53a71db7.stex" ] +dest_files=["res://.godot/imported/grreshi.png-8aabfbc7ee47be9ffaeff61c53a71db7.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icairp.png.import b/assets/ui/icairp.png.import index e326a2b..13ad306 100644 --- a/assets/ui/icairp.png.import +++ b/assets/ui/icairp.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icairp.png-9547640c58e1f4b6f6a7ed6957fcb0c1.stex" +type="CompressedTexture2D" +uid="uid://cy02m3335lk5g" +path="res://.godot/imported/icairp.png-9547640c58e1f4b6f6a7ed6957fcb0c1.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icairp.png" -dest_files=[ "res://.import/icairp.png-9547640c58e1f4b6f6a7ed6957fcb0c1.stex" ] +dest_files=["res://.godot/imported/icairp.png-9547640c58e1f4b6f6a7ed6957fcb0c1.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icairphi.png.import b/assets/ui/icairphi.png.import index 7e60a3a..0d121df 100644 --- a/assets/ui/icairphi.png.import +++ b/assets/ui/icairphi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icairphi.png-9a25369acbfa424212274a94f911f3d9.stex" +type="CompressedTexture2D" +uid="uid://i2irtsqvmoj3" +path="res://.godot/imported/icairphi.png-9a25369acbfa424212274a94f911f3d9.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icairphi.png" -dest_files=[ "res://.import/icairphi.png-9a25369acbfa424212274a94f911f3d9.stex" ] +dest_files=["res://.godot/imported/icairphi.png-9a25369acbfa424212274a94f911f3d9.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/iccoal.png.import b/assets/ui/iccoal.png.import index ad18856..6e3188b 100644 --- a/assets/ui/iccoal.png.import +++ b/assets/ui/iccoal.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/iccoal.png-560e796382dbee58588ee74a169eed68.stex" +type="CompressedTexture2D" +uid="uid://bjsvnc2lqvbm" +path="res://.godot/imported/iccoal.png-560e796382dbee58588ee74a169eed68.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/iccoal.png" -dest_files=[ "res://.import/iccoal.png-560e796382dbee58588ee74a169eed68.stex" ] +dest_files=["res://.godot/imported/iccoal.png-560e796382dbee58588ee74a169eed68.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/iccoalhi.png.import b/assets/ui/iccoalhi.png.import index 5637a57..f76c5f8 100644 --- a/assets/ui/iccoalhi.png.import +++ b/assets/ui/iccoalhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/iccoalhi.png-145a366ac23389cb3ae6644e8bb9c0ce.stex" +type="CompressedTexture2D" +uid="uid://sokxhigqrjnr" +path="res://.godot/imported/iccoalhi.png-145a366ac23389cb3ae6644e8bb9c0ce.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/iccoalhi.png" -dest_files=[ "res://.import/iccoalhi.png-145a366ac23389cb3ae6644e8bb9c0ce.stex" ] +dest_files=["res://.godot/imported/iccoalhi.png-145a366ac23389cb3ae6644e8bb9c0ce.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/iccom.png.import b/assets/ui/iccom.png.import index e813124..b1e8f32 100644 --- a/assets/ui/iccom.png.import +++ b/assets/ui/iccom.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/iccom.png-3f2bf62921cb846d9b6473088dc23115.stex" +type="CompressedTexture2D" +uid="uid://cshjvdlu0yrcq" +path="res://.godot/imported/iccom.png-3f2bf62921cb846d9b6473088dc23115.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/iccom.png" -dest_files=[ "res://.import/iccom.png-3f2bf62921cb846d9b6473088dc23115.stex" ] +dest_files=["res://.godot/imported/iccom.png-3f2bf62921cb846d9b6473088dc23115.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/iccomhi.png.import b/assets/ui/iccomhi.png.import index 9372016..7674745 100644 --- a/assets/ui/iccomhi.png.import +++ b/assets/ui/iccomhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/iccomhi.png-c51dcef5766d6719074bece6a4e7029c.stex" +type="CompressedTexture2D" +uid="uid://oyj2imeqrvmj" +path="res://.godot/imported/iccomhi.png-c51dcef5766d6719074bece6a4e7029c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/iccomhi.png" -dest_files=[ "res://.import/iccomhi.png-c51dcef5766d6719074bece6a4e7029c.stex" ] +dest_files=["res://.godot/imported/iccomhi.png-c51dcef5766d6719074bece6a4e7029c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icdozr.png.import b/assets/ui/icdozr.png.import index bf4e1c0..65bfea8 100644 --- a/assets/ui/icdozr.png.import +++ b/assets/ui/icdozr.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icdozr.png-0a5e90380d5ff30acb25be4c70713829.stex" +type="CompressedTexture2D" +uid="uid://cswfqumlo7p0m" +path="res://.godot/imported/icdozr.png-0a5e90380d5ff30acb25be4c70713829.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icdozr.png" -dest_files=[ "res://.import/icdozr.png-0a5e90380d5ff30acb25be4c70713829.stex" ] +dest_files=["res://.godot/imported/icdozr.png-0a5e90380d5ff30acb25be4c70713829.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icdozrhi.png.import b/assets/ui/icdozrhi.png.import index eae18f5..a745192 100644 --- a/assets/ui/icdozrhi.png.import +++ b/assets/ui/icdozrhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icdozrhi.png-df9925c5c3456c66b92e679a17e66867.stex" +type="CompressedTexture2D" +uid="uid://c0id86njchm8a" +path="res://.godot/imported/icdozrhi.png-df9925c5c3456c66b92e679a17e66867.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icdozrhi.png" -dest_files=[ "res://.import/icdozrhi.png-df9925c5c3456c66b92e679a17e66867.stex" ] +dest_files=["res://.godot/imported/icdozrhi.png-df9925c5c3456c66b92e679a17e66867.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icfire.png.import b/assets/ui/icfire.png.import index ccd0ed8..0918ea6 100644 --- a/assets/ui/icfire.png.import +++ b/assets/ui/icfire.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icfire.png-ccaedf14b8d169520ec44e07427c9b1e.stex" +type="CompressedTexture2D" +uid="uid://bm8p8w2bithvp" +path="res://.godot/imported/icfire.png-ccaedf14b8d169520ec44e07427c9b1e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icfire.png" -dest_files=[ "res://.import/icfire.png-ccaedf14b8d169520ec44e07427c9b1e.stex" ] +dest_files=["res://.godot/imported/icfire.png-ccaedf14b8d169520ec44e07427c9b1e.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icfirehi.png.import b/assets/ui/icfirehi.png.import index 65f1f18..c7b8990 100644 --- a/assets/ui/icfirehi.png.import +++ b/assets/ui/icfirehi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icfirehi.png-2ec845c6fa221c31ad1c0d3124889fa5.stex" +type="CompressedTexture2D" +uid="uid://cf60vjiics4hd" +path="res://.godot/imported/icfirehi.png-2ec845c6fa221c31ad1c0d3124889fa5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icfirehi.png" -dest_files=[ "res://.import/icfirehi.png-2ec845c6fa221c31ad1c0d3124889fa5.stex" ] +dest_files=["res://.godot/imported/icfirehi.png-2ec845c6fa221c31ad1c0d3124889fa5.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icind.png.import b/assets/ui/icind.png.import index b5945a0..3a5590e 100644 --- a/assets/ui/icind.png.import +++ b/assets/ui/icind.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icind.png-219ecd56e8057e0ddb48ff7138f09134.stex" +type="CompressedTexture2D" +uid="uid://dg0fwaba6bocj" +path="res://.godot/imported/icind.png-219ecd56e8057e0ddb48ff7138f09134.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icind.png" -dest_files=[ "res://.import/icind.png-219ecd56e8057e0ddb48ff7138f09134.stex" ] +dest_files=["res://.godot/imported/icind.png-219ecd56e8057e0ddb48ff7138f09134.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icindhi.png.import b/assets/ui/icindhi.png.import index f400a5d..cef634e 100644 --- a/assets/ui/icindhi.png.import +++ b/assets/ui/icindhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icindhi.png-b02bbf4466e60ba674585fa544cb72d8.stex" +type="CompressedTexture2D" +uid="uid://cdis6gouhsu13" +path="res://.godot/imported/icindhi.png-b02bbf4466e60ba674585fa544cb72d8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icindhi.png" -dest_files=[ "res://.import/icindhi.png-b02bbf4466e60ba674585fa544cb72d8.stex" ] +dest_files=["res://.godot/imported/icindhi.png-b02bbf4466e60ba674585fa544cb72d8.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icnuc.png.import b/assets/ui/icnuc.png.import index a23804f..fe99f56 100644 --- a/assets/ui/icnuc.png.import +++ b/assets/ui/icnuc.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icnuc.png-328e54d5374fbb37c7cb9c8a22b42a59.stex" +type="CompressedTexture2D" +uid="uid://j82tvp0v8ibo" +path="res://.godot/imported/icnuc.png-328e54d5374fbb37c7cb9c8a22b42a59.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icnuc.png" -dest_files=[ "res://.import/icnuc.png-328e54d5374fbb37c7cb9c8a22b42a59.stex" ] +dest_files=["res://.godot/imported/icnuc.png-328e54d5374fbb37c7cb9c8a22b42a59.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icnuchi.png.import b/assets/ui/icnuchi.png.import index 42e5222..c228522 100644 --- a/assets/ui/icnuchi.png.import +++ b/assets/ui/icnuchi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icnuchi.png-31da2752f2fa66d3abc46e72b788409f.stex" +type="CompressedTexture2D" +uid="uid://e5c5je3r80ib" +path="res://.godot/imported/icnuchi.png-31da2752f2fa66d3abc46e72b788409f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icnuchi.png" -dest_files=[ "res://.import/icnuchi.png-31da2752f2fa66d3abc46e72b788409f.stex" ] +dest_files=["res://.godot/imported/icnuchi.png-31da2752f2fa66d3abc46e72b788409f.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icpark.png.import b/assets/ui/icpark.png.import index 341daa8..e5bea74 100644 --- a/assets/ui/icpark.png.import +++ b/assets/ui/icpark.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icpark.png-b2f2c41c2dd67723da5b64ef0702d783.stex" +type="CompressedTexture2D" +uid="uid://d1jixlc3whtnk" +path="res://.godot/imported/icpark.png-b2f2c41c2dd67723da5b64ef0702d783.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icpark.png" -dest_files=[ "res://.import/icpark.png-b2f2c41c2dd67723da5b64ef0702d783.stex" ] +dest_files=["res://.godot/imported/icpark.png-b2f2c41c2dd67723da5b64ef0702d783.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icparkhi.png.import b/assets/ui/icparkhi.png.import index 323a573..4b4c05d 100644 --- a/assets/ui/icparkhi.png.import +++ b/assets/ui/icparkhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icparkhi.png-c41c00280ae9e58ef07b529279258973.stex" +type="CompressedTexture2D" +uid="uid://blv5ghue4wjqi" +path="res://.godot/imported/icparkhi.png-c41c00280ae9e58ef07b529279258973.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icparkhi.png" -dest_files=[ "res://.import/icparkhi.png-c41c00280ae9e58ef07b529279258973.stex" ] +dest_files=["res://.godot/imported/icparkhi.png-c41c00280ae9e58ef07b529279258973.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icpol.png.import b/assets/ui/icpol.png.import index 01e6cbb..577292a 100644 --- a/assets/ui/icpol.png.import +++ b/assets/ui/icpol.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icpol.png-1869ed20b629db6c4acee63f8300861a.stex" +type="CompressedTexture2D" +uid="uid://dcktbxpyxri5f" +path="res://.godot/imported/icpol.png-1869ed20b629db6c4acee63f8300861a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icpol.png" -dest_files=[ "res://.import/icpol.png-1869ed20b629db6c4acee63f8300861a.stex" ] +dest_files=["res://.godot/imported/icpol.png-1869ed20b629db6c4acee63f8300861a.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icpolhi.png.import b/assets/ui/icpolhi.png.import index 3a8b206..59c3e0f 100644 --- a/assets/ui/icpolhi.png.import +++ b/assets/ui/icpolhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icpolhi.png-d807dbd1e57b1d809800d0eb7d48116e.stex" +type="CompressedTexture2D" +uid="uid://d4hdraxukbw73" +path="res://.godot/imported/icpolhi.png-d807dbd1e57b1d809800d0eb7d48116e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icpolhi.png" -dest_files=[ "res://.import/icpolhi.png-d807dbd1e57b1d809800d0eb7d48116e.stex" ] +dest_files=["res://.godot/imported/icpolhi.png-d807dbd1e57b1d809800d0eb7d48116e.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icqry.png.import b/assets/ui/icqry.png.import index 193195e..ca5196f 100644 --- a/assets/ui/icqry.png.import +++ b/assets/ui/icqry.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icqry.png-f323b7dbed52091386d0129d3511198c.stex" +type="CompressedTexture2D" +uid="uid://xdrxyp48siyt" +path="res://.godot/imported/icqry.png-f323b7dbed52091386d0129d3511198c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icqry.png" -dest_files=[ "res://.import/icqry.png-f323b7dbed52091386d0129d3511198c.stex" ] +dest_files=["res://.godot/imported/icqry.png-f323b7dbed52091386d0129d3511198c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icqryhi.png.import b/assets/ui/icqryhi.png.import index 99f4e93..1017691 100644 --- a/assets/ui/icqryhi.png.import +++ b/assets/ui/icqryhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icqryhi.png-d6270cc968e10a03653fcc5c09be8f78.stex" +type="CompressedTexture2D" +uid="uid://j5imofqiyqni" +path="res://.godot/imported/icqryhi.png-d6270cc968e10a03653fcc5c09be8f78.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icqryhi.png" -dest_files=[ "res://.import/icqryhi.png-d6270cc968e10a03653fcc5c09be8f78.stex" ] +dest_files=["res://.godot/imported/icqryhi.png-d6270cc968e10a03653fcc5c09be8f78.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icrail.png.import b/assets/ui/icrail.png.import index c03eff2..9bbf7d9 100644 --- a/assets/ui/icrail.png.import +++ b/assets/ui/icrail.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icrail.png-e119554c1716560dad344d090313747f.stex" +type="CompressedTexture2D" +uid="uid://c7tr3kchrakbo" +path="res://.godot/imported/icrail.png-e119554c1716560dad344d090313747f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icrail.png" -dest_files=[ "res://.import/icrail.png-e119554c1716560dad344d090313747f.stex" ] +dest_files=["res://.godot/imported/icrail.png-e119554c1716560dad344d090313747f.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icrailhi.png.import b/assets/ui/icrailhi.png.import index 29acd67..16c85aa 100644 --- a/assets/ui/icrailhi.png.import +++ b/assets/ui/icrailhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icrailhi.png-ee8e8a38b13965f69bfe94ca83561ce0.stex" +type="CompressedTexture2D" +uid="uid://c4g3t6k6pnq3c" +path="res://.godot/imported/icrailhi.png-ee8e8a38b13965f69bfe94ca83561ce0.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icrailhi.png" -dest_files=[ "res://.import/icrailhi.png-ee8e8a38b13965f69bfe94ca83561ce0.stex" ] +dest_files=["res://.godot/imported/icrailhi.png-ee8e8a38b13965f69bfe94ca83561ce0.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icres.png.import b/assets/ui/icres.png.import index fb25b2c..7ba3cf1 100644 --- a/assets/ui/icres.png.import +++ b/assets/ui/icres.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icres.png-312b4229f60f2a4254a6b71960a12831.stex" +type="CompressedTexture2D" +uid="uid://btn0y2spbd7af" +path="res://.godot/imported/icres.png-312b4229f60f2a4254a6b71960a12831.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icres.png" -dest_files=[ "res://.import/icres.png-312b4229f60f2a4254a6b71960a12831.stex" ] +dest_files=["res://.godot/imported/icres.png-312b4229f60f2a4254a6b71960a12831.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icreshi.png.import b/assets/ui/icreshi.png.import index b3a1c9f..46d8204 100644 --- a/assets/ui/icreshi.png.import +++ b/assets/ui/icreshi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icreshi.png-05bb18d8760ee82bdad3015d06f8e279.stex" +type="CompressedTexture2D" +uid="uid://cad53ut72dn5r" +path="res://.godot/imported/icreshi.png-05bb18d8760ee82bdad3015d06f8e279.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icreshi.png" -dest_files=[ "res://.import/icreshi.png-05bb18d8760ee82bdad3015d06f8e279.stex" ] +dest_files=["res://.godot/imported/icreshi.png-05bb18d8760ee82bdad3015d06f8e279.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icroad.png.import b/assets/ui/icroad.png.import index b5f5a4d..a9d368b 100644 --- a/assets/ui/icroad.png.import +++ b/assets/ui/icroad.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icroad.png-df688c281d170463019a70a7640273af.stex" +type="CompressedTexture2D" +uid="uid://djcxsgv8r8i70" +path="res://.godot/imported/icroad.png-df688c281d170463019a70a7640273af.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icroad.png" -dest_files=[ "res://.import/icroad.png-df688c281d170463019a70a7640273af.stex" ] +dest_files=["res://.godot/imported/icroad.png-df688c281d170463019a70a7640273af.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icroadhi.png.import b/assets/ui/icroadhi.png.import index dcb9d3f..b162c87 100644 --- a/assets/ui/icroadhi.png.import +++ b/assets/ui/icroadhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icroadhi.png-73d08690b3871ac6422f293a254194d4.stex" +type="CompressedTexture2D" +uid="uid://clli6vgwa4o2q" +path="res://.godot/imported/icroadhi.png-73d08690b3871ac6422f293a254194d4.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icroadhi.png" -dest_files=[ "res://.import/icroadhi.png-73d08690b3871ac6422f293a254194d4.stex" ] +dest_files=["res://.godot/imported/icroadhi.png-73d08690b3871ac6422f293a254194d4.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icseap.png.import b/assets/ui/icseap.png.import index fe25d48..751926b 100644 --- a/assets/ui/icseap.png.import +++ b/assets/ui/icseap.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icseap.png-41c4f9c88c24e5df093c99e34029c9ad.stex" +type="CompressedTexture2D" +uid="uid://bfqooqj02nkvo" +path="res://.godot/imported/icseap.png-41c4f9c88c24e5df093c99e34029c9ad.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icseap.png" -dest_files=[ "res://.import/icseap.png-41c4f9c88c24e5df093c99e34029c9ad.stex" ] +dest_files=["res://.godot/imported/icseap.png-41c4f9c88c24e5df093c99e34029c9ad.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icseaphi.png.import b/assets/ui/icseaphi.png.import index ad4cd8a..731f719 100644 --- a/assets/ui/icseaphi.png.import +++ b/assets/ui/icseaphi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icseaphi.png-6b7fd4812717dd547daf3db16d3f0928.stex" +type="CompressedTexture2D" +uid="uid://y83owejx8wsc" +path="res://.godot/imported/icseaphi.png-6b7fd4812717dd547daf3db16d3f0928.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icseaphi.png" -dest_files=[ "res://.import/icseaphi.png-6b7fd4812717dd547daf3db16d3f0928.stex" ] +dest_files=["res://.godot/imported/icseaphi.png-6b7fd4812717dd547daf3db16d3f0928.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icstad.png.import b/assets/ui/icstad.png.import index 750e950..d6fc1d8 100644 --- a/assets/ui/icstad.png.import +++ b/assets/ui/icstad.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icstad.png-ecbdb08e3445c39ddf41a10efc44ae96.stex" +type="CompressedTexture2D" +uid="uid://c14p2l4tagid2" +path="res://.godot/imported/icstad.png-ecbdb08e3445c39ddf41a10efc44ae96.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icstad.png" -dest_files=[ "res://.import/icstad.png-ecbdb08e3445c39ddf41a10efc44ae96.stex" ] +dest_files=["res://.godot/imported/icstad.png-ecbdb08e3445c39ddf41a10efc44ae96.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icstadhi.png.import b/assets/ui/icstadhi.png.import index e0a759c..5774b50 100644 --- a/assets/ui/icstadhi.png.import +++ b/assets/ui/icstadhi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icstadhi.png-53cd660cc74197b14548700fbd7fa803.stex" +type="CompressedTexture2D" +uid="uid://x7pju0q6hyud" +path="res://.godot/imported/icstadhi.png-53cd660cc74197b14548700fbd7fa803.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icstadhi.png" -dest_files=[ "res://.import/icstadhi.png-53cd660cc74197b14548700fbd7fa803.stex" ] +dest_files=["res://.godot/imported/icstadhi.png-53cd660cc74197b14548700fbd7fa803.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icwire.png.import b/assets/ui/icwire.png.import index b6250b9..cde7795 100644 --- a/assets/ui/icwire.png.import +++ b/assets/ui/icwire.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icwire.png-74c11cb15362d46b5b0f538ab5c4a9bc.stex" +type="CompressedTexture2D" +uid="uid://duhv0kjrc1ftq" +path="res://.godot/imported/icwire.png-74c11cb15362d46b5b0f538ab5c4a9bc.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icwire.png" -dest_files=[ "res://.import/icwire.png-74c11cb15362d46b5b0f538ab5c4a9bc.stex" ] +dest_files=["res://.godot/imported/icwire.png-74c11cb15362d46b5b0f538ab5c4a9bc.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/icwirehi.png.import b/assets/ui/icwirehi.png.import index ed777bb..67bf099 100644 --- a/assets/ui/icwirehi.png.import +++ b/assets/ui/icwirehi.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icwirehi.png-180fb63bfde3835797cc5c476931d4df.stex" +type="CompressedTexture2D" +uid="uid://csg2pnb8gyc3f" +path="res://.godot/imported/icwirehi.png-180fb63bfde3835797cc5c476931d4df.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/ui/icwirehi.png" -dest_files=[ "res://.import/icwirehi.png-180fb63bfde3835797cc5c476931d4df.stex" ] +dest_files=["res://.godot/imported/icwirehi.png-180fb63bfde3835797cc5c476931d4df.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ui/pause.svg.import b/assets/ui/pause.svg.import index ba474b4..4fd0a53 100644 --- a/assets/ui/pause.svg.import +++ b/assets/ui/pause.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/pause.svg-d9a3b951dfe561fa662bd1688caf1ba2.stex" +type="CompressedTexture2D" +uid="uid://cewbjfekrm5h2" +path="res://.godot/imported/pause.svg-d9a3b951dfe561fa662bd1688caf1ba2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://assets/ui/pause.svg" -dest_files=[ "res://.import/pause.svg-d9a3b951dfe561fa662bd1688caf1ba2.stex" ] +dest_files=["res://.godot/imported/pause.svg-d9a3b951dfe561fa662bd1688caf1ba2.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/vignette.png.import b/assets/vignette.png.import index 1be15f4..55f0d69 100644 --- a/assets/vignette.png.import +++ b/assets/vignette.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/vignette.png-616bd0f74b406d55d24cc11a1e977d54.stex" +type="CompressedTexture2D" +uid="uid://yqffhydb8hv1" +path="res://.godot/imported/vignette.png-616bd0f74b406d55d24cc11a1e977d54.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/vignette.png" -dest_files=[ "res://.import/vignette.png-616bd0f74b406d55d24cc11a1e977d54.stex" ] +dest_files=["res://.godot/imported/vignette.png-616bd0f74b406d55d24cc11a1e977d54.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/water.tres b/assets/water.tres index 9300ef5..e40c21b 100644 --- a/assets/water.tres +++ b/assets/water.tres @@ -1,6 +1,6 @@ [gd_resource type="TileSet" load_steps=2 format=2] -[ext_resource path="res://assets/terrain_cl.png" type="Texture" id=1] +[ext_resource path="res://assets/terrain_cl.png" type="Texture2D" id=1] diff --git a/assets/wires.png.import b/assets/wires.png.import index 4975334..93d27b1 100644 --- a/assets/wires.png.import +++ b/assets/wires.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/wires.png-ccdeeb58ebbd6212fb19d97cf353af6c.stex" +type="CompressedTexture2D" +uid="uid://ba7vawt7akixc" +path="res://.godot/imported/wires.png-ccdeeb58ebbd6212fb19d97cf353af6c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/wires.png" -dest_files=[ "res://.import/wires.png-ccdeeb58ebbd6212fb19d97cf353af6c.stex" ] +dest_files=["res://.godot/imported/wires.png-ccdeeb58ebbd6212fb19d97cf353af6c.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/wires_3x3.png.import b/assets/wires_3x3.png.import index a927e27..c351e70 100644 --- a/assets/wires_3x3.png.import +++ b/assets/wires_3x3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/wires_3x3.png-a73979ff86556b8a6b30ce4b3fc28950.stex" +type="CompressedTexture2D" +uid="uid://clwiv0n083xa8" +path="res://.godot/imported/wires_3x3.png-a73979ff86556b8a6b30ce4b3fc28950.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/wires_3x3.png" -dest_files=[ "res://.import/wires_3x3.png-a73979ff86556b8a6b30ce4b3fc28950.stex" ] +dest_files=["res://.godot/imported/wires_3x3.png-a73979ff86556b8a6b30ce4b3fc28950.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/default_env.tres b/default_env.tres deleted file mode 100644 index 20207a4..0000000 --- a/default_env.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="Environment" load_steps=2 format=2] - -[sub_resource type="ProceduralSky" id=1] - -[resource] -background_mode = 2 -background_sky = SubResource( 1 ) diff --git a/doc/images/feature_overview.jpg b/doc/images/feature_overview.jpg deleted file mode 100644 index c61c1cc..0000000 Binary files a/doc/images/feature_overview.jpg and /dev/null differ diff --git a/doc/images/feature_overview_2.jpg b/doc/images/feature_overview_2.jpg deleted file mode 100644 index 25ba2bd..0000000 Binary files a/doc/images/feature_overview_2.jpg and /dev/null differ diff --git a/doc/images/godot_deploy_to_android.jpg b/doc/images/godot_deploy_to_android.jpg deleted file mode 100644 index e9b0d91..0000000 Binary files a/doc/images/godot_deploy_to_android.jpg and /dev/null differ diff --git a/doc/images/hand_gestures.jpg b/doc/images/hand_gestures.jpg deleted file mode 100644 index f4dde33..0000000 Binary files a/doc/images/hand_gestures.jpg and /dev/null differ diff --git a/doc/images/medieval_city_screenshot.jpg b/doc/images/medieval_city_screenshot.jpg deleted file mode 100644 index 84909ba..0000000 Binary files a/doc/images/medieval_city_screenshot.jpg and /dev/null differ diff --git a/doc/images/ovr_metrics_tool.jpg b/doc/images/ovr_metrics_tool.jpg deleted file mode 100644 index 512d820..0000000 Binary files a/doc/images/ovr_metrics_tool.jpg and /dev/null differ diff --git a/doc/images/showcase/beepsaber.jpg b/doc/images/showcase/beepsaber.jpg deleted file mode 100644 index be63a27..0000000 Binary files a/doc/images/showcase/beepsaber.jpg and /dev/null differ diff --git a/doc/images/showcase/blocks.jpg b/doc/images/showcase/blocks.jpg deleted file mode 100644 index 1988b03..0000000 Binary files a/doc/images/showcase/blocks.jpg and /dev/null differ diff --git a/doc/images/showcase/fugitive.jpg b/doc/images/showcase/fugitive.jpg deleted file mode 100644 index ace810c..0000000 Binary files a/doc/images/showcase/fugitive.jpg and /dev/null differ diff --git a/doc/images/showcase/getwood.jpg b/doc/images/showcase/getwood.jpg deleted file mode 100644 index 6f2ce49..0000000 Binary files a/doc/images/showcase/getwood.jpg and /dev/null differ diff --git a/doc/images/showcase/impossible_crypt.jpg b/doc/images/showcase/impossible_crypt.jpg deleted file mode 100644 index 4ff3b19..0000000 Binary files a/doc/images/showcase/impossible_crypt.jpg and /dev/null differ diff --git a/doc/images/showcase/japanese_in_a_nutshell.jpg b/doc/images/showcase/japanese_in_a_nutshell.jpg deleted file mode 100644 index d1a693d..0000000 Binary files a/doc/images/showcase/japanese_in_a_nutshell.jpg and /dev/null differ diff --git a/doc/images/showcase/mawashi.jpg b/doc/images/showcase/mawashi.jpg deleted file mode 100644 index 8f9b07d..0000000 Binary files a/doc/images/showcase/mawashi.jpg and /dev/null differ diff --git a/doc/images/showcase/neon_gunslinger_vr.jpg b/doc/images/showcase/neon_gunslinger_vr.jpg deleted file mode 100644 index 823976d..0000000 Binary files a/doc/images/showcase/neon_gunslinger_vr.jpg and /dev/null differ diff --git a/doc/images/showcase/pipelines.jpg b/doc/images/showcase/pipelines.jpg deleted file mode 100644 index e540e24..0000000 Binary files a/doc/images/showcase/pipelines.jpg and /dev/null differ diff --git a/doc/images/showcase/seurat_capture.jpg b/doc/images/showcase/seurat_capture.jpg deleted file mode 100644 index 68215b4..0000000 Binary files a/doc/images/showcase/seurat_capture.jpg and /dev/null differ diff --git a/doc/images/showcase/seurat_tps_test.jpg b/doc/images/showcase/seurat_tps_test.jpg deleted file mode 100644 index 8405c1e..0000000 Binary files a/doc/images/showcase/seurat_tps_test.jpg and /dev/null differ diff --git a/doc/images/showcase/spacetoys.jpg b/doc/images/showcase/spacetoys.jpg deleted file mode 100644 index f1a723e..0000000 Binary files a/doc/images/showcase/spacetoys.jpg and /dev/null differ diff --git a/doc/images/showcase/voxel_works_quest.jpg b/doc/images/showcase/voxel_works_quest.jpg deleted file mode 100644 index 75d238e..0000000 Binary files a/doc/images/showcase/voxel_works_quest.jpg and /dev/null differ diff --git a/doc/images/simulator_example.jpg b/doc/images/simulator_example.jpg deleted file mode 100644 index 8a46891..0000000 Binary files a/doc/images/simulator_example.jpg and /dev/null differ diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index cec3efc..0000000 --- a/docs/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# City Limits - -City Limits is a re-imagining of SimCity Classic that brings modern city building concepts to the classic game. - -## Advisors - -Advisors were first introduced in the SNES version of SimCity. - -## Upgrades - -Though SimCity: BuildIt is a microtransaction hell, it functions very similar to classic in that zones are dragged and dropped down, instead of painted, but differs in h \ No newline at end of file diff --git a/docs/octy.md b/docs/octy.md deleted file mode 100644 index 623a76e..0000000 --- a/docs/octy.md +++ /dev/null @@ -1,42 +0,0 @@ -# Open City Spec - -*This ia WIP save file structure.* - -Save file in City Limits are nothing more than JSON files. - -## Top-level - -```json -{ - "city": "", - "mayor": "", - "version": "", -} -``` - -## Zones - -```json -{ - "zones": { - "commercial": {}, - "residential": {}, - "industrial": {} - } -} -``` - -Within each zone type are the zones themselves with their coordinates on the map. Each zone is given a random number as an id. - -```json -{ - "1": { - "x": 654, - "y": 564 - }, - "2": { - "x": 321, - "y": 85 - } -} -``` \ No newline at end of file diff --git a/docs/.gdignore b/documentation/assets/.gdignore similarity index 100% rename from docs/.gdignore rename to documentation/assets/.gdignore diff --git a/documentation/assets/bt_illustration.png b/documentation/assets/bt_illustration.png new file mode 100644 index 0000000..19d2ce9 Binary files /dev/null and b/documentation/assets/bt_illustration.png differ diff --git a/documentation/assets/nodes/btactionblackboarddelete.png b/documentation/assets/nodes/btactionblackboarddelete.png new file mode 100644 index 0000000..9f4ced0 Binary files /dev/null and b/documentation/assets/nodes/btactionblackboarddelete.png differ diff --git a/documentation/assets/nodes/btactionblackboardset.png b/documentation/assets/nodes/btactionblackboardset.png new file mode 100644 index 0000000..dcecf07 Binary files /dev/null and b/documentation/assets/nodes/btactionblackboardset.png differ diff --git a/documentation/assets/nodes/btactioncallable.png b/documentation/assets/nodes/btactioncallable.png new file mode 100644 index 0000000..ea4da8b Binary files /dev/null and b/documentation/assets/nodes/btactioncallable.png differ diff --git a/documentation/assets/nodes/btactionwait.png b/documentation/assets/nodes/btactionwait.png new file mode 100644 index 0000000..2baa0ec Binary files /dev/null and b/documentation/assets/nodes/btactionwait.png differ diff --git a/documentation/assets/nodes/btblackboard.png b/documentation/assets/nodes/btblackboard.png new file mode 100644 index 0000000..b9ae07f Binary files /dev/null and b/documentation/assets/nodes/btblackboard.png differ diff --git a/documentation/assets/nodes/btconditionblackboardkeyexists.png b/documentation/assets/nodes/btconditionblackboardkeyexists.png new file mode 100644 index 0000000..4cb0106 Binary files /dev/null and b/documentation/assets/nodes/btconditionblackboardkeyexists.png differ diff --git a/documentation/assets/nodes/btconditionblackboardvaluescomparison.png b/documentation/assets/nodes/btconditionblackboardvaluescomparison.png new file mode 100644 index 0000000..9f02ffd Binary files /dev/null and b/documentation/assets/nodes/btconditionblackboardvaluescomparison.png differ diff --git a/documentation/assets/nodes/btconditioncallable.png b/documentation/assets/nodes/btconditioncallable.png new file mode 100644 index 0000000..5020b89 Binary files /dev/null and b/documentation/assets/nodes/btconditioncallable.png differ diff --git a/documentation/assets/nodes/btlimiter.png b/documentation/assets/nodes/btlimiter.png new file mode 100644 index 0000000..5a80d36 Binary files /dev/null and b/documentation/assets/nodes/btlimiter.png differ diff --git a/documentation/assets/nodes/btrandom.png b/documentation/assets/nodes/btrandom.png new file mode 100644 index 0000000..3ef7b2b Binary files /dev/null and b/documentation/assets/nodes/btrandom.png differ diff --git a/documentation/assets/nodes/btrandomselector.png b/documentation/assets/nodes/btrandomselector.png new file mode 100644 index 0000000..0193d06 Binary files /dev/null and b/documentation/assets/nodes/btrandomselector.png differ diff --git a/documentation/assets/nodes/btrepeatuntil.png b/documentation/assets/nodes/btrepeatuntil.png new file mode 100644 index 0000000..0a13996 Binary files /dev/null and b/documentation/assets/nodes/btrepeatuntil.png differ diff --git a/documentation/assets/nodes/btroot.png b/documentation/assets/nodes/btroot.png new file mode 100644 index 0000000..0edbb65 Binary files /dev/null and b/documentation/assets/nodes/btroot.png differ diff --git a/documentation/assets/nodes/btroot.png.import b/documentation/assets/nodes/btroot.png.import new file mode 100644 index 0000000..0d0ecaf --- /dev/null +++ b/documentation/assets/nodes/btroot.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bd4srq2ktcjbt" +path="res://.godot/imported/btroot.png-06d458b63a88908557ef569967b6d585.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://documentation/assets/nodes/btroot.png" +dest_files=["res://.godot/imported/btroot.png-06d458b63a88908557ef569967b6d585.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/documentation/assets/nodes/btselector.png b/documentation/assets/nodes/btselector.png new file mode 100644 index 0000000..fd8f820 Binary files /dev/null and b/documentation/assets/nodes/btselector.png differ diff --git a/documentation/assets/nodes/btsequence.png b/documentation/assets/nodes/btsequence.png new file mode 100644 index 0000000..fd203ba Binary files /dev/null and b/documentation/assets/nodes/btsequence.png differ diff --git a/examples/blackboard_sharing/README.MD b/examples/blackboard_sharing/README.MD new file mode 100644 index 0000000..fe0d594 --- /dev/null +++ b/examples/blackboard_sharing/README.MD @@ -0,0 +1,12 @@ +# 🗣️ Sharing blackboard : the talking game ! + +This example demonstrates how to share a single blackboard in multiple behavior trees. + +Sharing a blackboard can be necessary if you want to easily share data between trees, for example, to synchronize multiple NPCs. + +The blackboard can be instantiate in a Scene Tree via the editor, or in a script (as in this example). + +## Technical elements + +- `main.tscn` : scene to run. The main scene instantiates a unique blackboard and give it to all player trees, +- `player.tscn` : a player in the talking game. They all share the same blackboard to known who is the next to talk. \ No newline at end of file diff --git a/examples/blackboard_sharing/main.gd b/examples/blackboard_sharing/main.gd new file mode 100644 index 0000000..4ea5349 --- /dev/null +++ b/examples/blackboard_sharing/main.gd @@ -0,0 +1,42 @@ +extends Node2D + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +var _shared_blackboard:BTBlackboard + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _ready() -> void: + _shared_blackboard = BTBlackboard.new() + _shared_blackboard.set_data("next_talking", "Alice") + _shared_blackboard.set_data("players", []) + + $"PlayerAlice/BTRoot/".blackboard = _shared_blackboard + $"PlayerBob/BTRoot/".blackboard = _shared_blackboard + $"PlayerCharles/BTRoot/".blackboard = _shared_blackboard + $"PlayerEmily/BTRoot/".blackboard = _shared_blackboard + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + diff --git a/examples/blackboard_sharing/main.tscn b/examples/blackboard_sharing/main.tscn new file mode 100644 index 0000000..8317600 --- /dev/null +++ b/examples/blackboard_sharing/main.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=3 format=3 uid="uid://d1s5iyoblr4cm"] + +[ext_resource type="Script" path="res://examples/blackboard_sharing/main.gd" id="1_g7q7h"] +[ext_resource type="PackedScene" uid="uid://7k8r0e84lcr3" path="res://examples/blackboard_sharing/player.tscn" id="2_y55mt"] + +[node name="World" type="Node2D"] +script = ExtResource("1_g7q7h") + +[node name="PlayerAlice" parent="." instance=ExtResource("2_y55mt")] +position = Vector2(509, 181) +player_name = "Alice" + +[node name="PlayerBob" parent="." instance=ExtResource("2_y55mt")] +position = Vector2(515, 477) +player_name = "Bob" + +[node name="PlayerCharles" parent="." instance=ExtResource("2_y55mt")] +position = Vector2(309, 324) +player_name = "Charles" + +[node name="PlayerEmily" parent="." instance=ExtResource("2_y55mt")] +position = Vector2(733, 322) +player_name = "Emily" diff --git a/examples/blackboard_sharing/player.gd b/examples/blackboard_sharing/player.gd new file mode 100644 index 0000000..b65b39b --- /dev/null +++ b/examples/blackboard_sharing/player.gd @@ -0,0 +1,63 @@ +extends Node2D + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +@export var player_name:String = "": + set(value): + player_name = value + if _name_label: + _name_label.text = player_name + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +@onready var _text_label:Label = $GUI/Text +@onready var _name_label:Label = $GUI/Name + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _ready() -> void: + _name_label.text = player_name + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func declare_presence(blackboard:BTBlackboard) -> int: + blackboard.get_data("players").append(player_name) + return BTTickResult.SUCCESS + +func is_my_turn_to_talk(next_talking:String) -> bool: + return player_name == next_talking + +func talk() -> int: + _text_label.visible = true + get_tree().create_timer(1).timeout.connect(func():_text_label.visible = false) + return BTTickResult.SUCCESS + +func choose_next_player_talking(blackboard:BTBlackboard) -> int: + blackboard.set_data("next_talking", _pick_next_player(blackboard.get_data("players"))) + return BTTickResult.SUCCESS + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func _pick_next_player(players:Array) -> String: + var result:String = players.pick_random() + while result == player_name: + result = players.pick_random() + return result diff --git a/examples/blackboard_sharing/player.tscn b/examples/blackboard_sharing/player.tscn new file mode 100644 index 0000000..6b53ca3 --- /dev/null +++ b/examples/blackboard_sharing/player.tscn @@ -0,0 +1,123 @@ +[gd_scene load_steps=11 format=3 uid="uid://7k8r0e84lcr3"] + +[ext_resource type="Script" path="res://examples/blackboard_sharing/player.gd" id="1_1ti0g"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/BTRoot.gd" id="2_sdd0w"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Composite/BTSelector.gd" id="3_2v3m1"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Composite/BTSequence.gd" id="4_fjw5l"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Decorators/BTSuccess.gd" id="4_qnbqx"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionCallable.gd" id="5_8tfvp"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Decorators/BTLimiter.gd" id="5_d3jao"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionCallable.gd" id="6_i6lan"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionWait.gd" id="10_1e6f0"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Decorators/BTInverter.gd" id="11_fvy66"] + +[node name="Player" type="Node2D"] +script = ExtResource("1_1ti0g") + +[node name="Shape" type="Node2D" parent="."] + +[node name="Ahahahah" type="Polygon2D" parent="Shape"] +color = Color(0.188235, 0.490196, 0.505882, 1) +polygon = PackedVector2Array(-27, -55, 22, -55, 22, -25, 10, -18, 24, 17, -30, 17, -30, 17, -30, 17, -13, -18, -13, -18, -13, -18, -27, -26, -27, -26, -27, -26) + +[node name="GUI" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_left = -61.0 +offset_top = -84.0 +offset_right = 61.0 +offset_bottom = -58.0 + +[node name="Text" type="Label" parent="GUI"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "My turn !" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Name" type="Label" parent="GUI"] +layout_mode = 0 +offset_left = 24.0 +offset_top = 104.0 +offset_right = 98.0 +offset_bottom = 127.0 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="BTRoot" type="Node" parent="."] +script = ExtResource("2_sdd0w") +actor_path = NodePath("..") + +[node name="Do" type="Node" parent="BTRoot"] +script = ExtResource("4_fjw5l") + +[node name="Init" type="Node" parent="BTRoot/Do"] +script = ExtResource("4_fjw5l") +save_progression = true + +[node name="Declare I am playing" type="Node" parent="BTRoot/Do/Init"] +script = ExtResource("4_qnbqx") + +[node name="Do once" type="Node" parent="BTRoot/Do/Init/Declare I am playing"] +script = ExtResource("5_d3jao") + +[node name="I\'m here !" type="Node" parent="BTRoot/Do/Init/Declare I am playing/Do once"] +script = ExtResource("6_i6lan") +method_owner_path = NodePath("../../../../../..") +method_name = "declare_presence" +method_arguments = Array[String](["blackboard"]) + +[node name="Invert" type="Node" parent="BTRoot/Do/Init"] +script = ExtResource("11_fvy66") + +[node name="Do once" type="Node" parent="BTRoot/Do/Init/Invert"] +script = ExtResource("5_d3jao") + +[node name="Wait 1s" type="Node" parent="BTRoot/Do/Init/Invert/Do once"] +script = ExtResource("10_1e6f0") + +[node name="One Between" type="Node" parent="BTRoot/Do"] +script = ExtResource("3_2v3m1") +save_progression = true + +[node name="I must talk" type="Node" parent="BTRoot/Do/One Between"] +script = ExtResource("4_fjw5l") +save_progression = true + +[node name="Is my Turn ?" type="Node" parent="BTRoot/Do/One Between/I must talk"] +script = ExtResource("5_8tfvp") +method_owner_path = NodePath("../../../../..") +method_name = "is_my_turn_to_talk" +method_arguments = Array[String](["blackboard.get_data(\"next_talking\")"]) + +[node name="Talk" type="Node" parent="BTRoot/Do/One Between/I must talk"] +script = ExtResource("6_i6lan") +method_owner_path = NodePath("../../../../..") +method_name = "talk" + +[node name="Wait a little bit" type="Node" parent="BTRoot/Do/One Between/I must talk"] +script = ExtResource("10_1e6f0") +random_deviation_ms = 300 + +[node name="Set Next Player To Talk" type="Node" parent="BTRoot/Do/One Between/I must talk"] +script = ExtResource("6_i6lan") +method_owner_path = NodePath("../../../../..") +method_name = "choose_next_player_talking" +method_arguments = Array[String](["blackboard"]) + +[node name="I must listen" type="Node" parent="BTRoot/Do/One Between"] +script = ExtResource("4_fjw5l") + +[node name="Not my turn" type="Node" parent="BTRoot/Do/One Between/I must listen"] +script = ExtResource("11_fvy66") + +[node name="Is my Turn ?" type="Node" parent="BTRoot/Do/One Between/I must listen/Not my turn"] +script = ExtResource("5_8tfvp") +method_owner_path = NodePath("../../../../../..") +method_name = "is_my_turn_to_talk" +method_arguments = Array[String](["blackboard.get_data(\"next_talking\")"]) diff --git a/examples/simple_ai_logic/README.MD b/examples/simple_ai_logic/README.MD new file mode 100644 index 0000000..5b56443 --- /dev/null +++ b/examples/simple_ai_logic/README.MD @@ -0,0 +1,12 @@ +# 🪵 Simple AI logic : the lumberjack ! + +This example is about a lumberjack that needs to cut logs. He can carry a certain quantity of logs before going back to the nearest warehouse to drop logs. When logs are dropped, he moves back to the tree he was cutting (or, the nearest tree if the tree is cut), and cut logs again. + +The aim of this example is to show how to implement a simple AI logic, composed of differents phases, using a behavior tree. This is just a proposal, there are several ways to create our lumberjack ! + +In lumberjack behavior tree, you can notice there is no custom tree node (action or condition) : only based ones are used. To execute functional actions, like dropping logs, the `BTActionCallable` is used. It allows to call a method in a node. For simple behavior trees, it allows to contain all logic into the same script. + +## Technical elements + +- `main.tscn` : scene to run, +- `lumberjack.tscn` : the lumberjack. The behavior tree is in this scene. \ No newline at end of file diff --git a/examples/simple_ai_logic/env/tree.gd b/examples/simple_ai_logic/env/tree.gd new file mode 100644 index 0000000..9a5ebcc --- /dev/null +++ b/examples/simple_ai_logic/env/tree.gd @@ -0,0 +1,49 @@ +extends Node2D + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +@export var max_log_count:int = 3 + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +@onready var remaining_logs:int = max_log_count + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _draw(): + var poly = $ShapeFull/Leaves.polygon + for i in range(1 , poly.size()): + draw_line(poly[i-1] , poly[i], Color.BLACK , 1) + draw_line(poly[poly.size() - 1] , poly[0], Color.BLACK , 1) + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func has_logs() -> bool: + return remaining_logs > 0 + +func cut_log() -> void: + if remaining_logs > 0: + remaining_logs -= 1 + if remaining_logs == 0: + queue_free() + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + diff --git a/examples/simple_ai_logic/env/tree.tscn b/examples/simple_ai_logic/env/tree.tscn new file mode 100644 index 0000000..b5c2f3c --- /dev/null +++ b/examples/simple_ai_logic/env/tree.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=5 format=3] + +[ext_resource type="Script" path="res://examples/simple_ai_logic/env/tree.gd" id="1_r2ta2"] + +[sub_resource type="Gradient" id="Gradient_aa3nm"] +colors = PackedColorArray(0.408848, 0.73338, 3.85046e-07, 1, 1, 1, 1, 1) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_2o5uu"] +frequency = 0.025 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0hflj"] +color_ramp = SubResource("Gradient_aa3nm") +noise = SubResource("FastNoiseLite_2o5uu") + +[node name="Tree" type="Node2D" groups=["tree"]] +script = ExtResource("1_r2ta2") + +[node name="ShapeFull" type="Node2D" parent="."] + +[node name="Base" type="Polygon2D" parent="ShapeFull"] +color = Color(0.270588, 0.141176, 0, 1) +polygon = PackedVector2Array(-15, 7, -15, 7, 11, 7, 11, 7, 11, 7, 1, -6, 1, -6, 1, -6, 6, -38, -4, -38, -4, -38, -4, -38) + +[node name="Leaves" type="Polygon2D" parent="ShapeFull"] +color = Color(0.121569, 0.301961, 0.0470588, 1) +texture = SubResource("NoiseTexture2D_0hflj") +polygon = PackedVector2Array(-3, -22, -3, -22, -11, -26, -11, -26, -11, -26, -11, -26, -11, -26, -11, -26, -11, -26, -11, -26, -11, -26, -11, -26, -18, -32, -18, -32, -18, -32, -18, -32, -18, -32, -18, -32, -18, -32, -18, -32, -18, -32, -18, -32, -23, -39, -23, -39, -23, -39, -23, -39, -23, -39, -23, -39, -23, -39, -23, -39, -23, -39, -23, -39, -23, -47, -18, -60, -18, -60, -18, -60, -18, -60, -18, -60, -18, -60, -18, -60, -18, -60, -18, -60, -18, -60, -21, -76, -22, -86, -22, -86, -22, -86, -22, -86, -22, -86, -22, -86, -22, -86, -22, -86, -22, -86, -22, -86, -7, -95, -7, -95, -7, -95, -7, -95, -7, -95, -7, -95, -7, -95, -7, -95, -7, -95, -7, -95, 7, -95, 7, -95, 7, -95, 7, -95, 7, -95, 7, -95, 7, -95, 7, -95, 7, -95, 7, -95, 19, -91, 19, -91, 19, -91, 19, -91, 19, -91, 19, -91, 19, -91, 19, -91, 19, -91, 19, -91, 25, -84, 25, -84, 25, -84, 25, -84, 25, -84, 25, -84, 25, -84, 25, -84, 25, -84, 25, -84, 29, -69, 29, -69, 29, -69, 29, -69, 29, -69, 29, -69, 29, -69, 29, -69, 29, -69, 29, -69, 29, -57, 29, -57, 29, -57, 29, -57, 29, -57, 29, -57, 29, -57, 29, -57, 29, -57, 29, -57, 30, -49, 30, -49, 30, -49, 30, -49, 30, -49, 30, -49, 30, -49, 30, -49, 30, -49, 30, -49, 33, -43, 33, -43, 33, -43, 33, -43, 33, -43, 33, -43, 33, -43, 33, -43, 33, -43, 33, -43, 34, -36, 34, -36, 34, -36, 34, -36, 34, -36, 34, -36, 34, -36, 34, -36, 34, -36, 34, -36, 31, -31, 31, -31, 31, -31, 31, -31, 31, -31, 31, -31, 31, -31, 31, -31, 31, -31, 31, -31, 20, -25, 20, -25, 20, -25, 20, -25, 20, -25, 20, -25, 20, -25, 20, -25, 20, -25, 20, -25, 7, -21, 7, -21, 7, -21, 7, -21, 7, -21, 7, -21, 7, -21, 7, -21, 7, -21, 7, -21) diff --git a/examples/simple_ai_logic/env/warehouse.tscn b/examples/simple_ai_logic/env/warehouse.tscn new file mode 100644 index 0000000..1be61ba --- /dev/null +++ b/examples/simple_ai_logic/env/warehouse.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://i4372roabk7a"] + +[node name="Warehouse" type="Node2D" groups=["warehouse"]] + +[node name="Shape" type="Polygon2D" parent="."] +position = Vector2(0, 7) +scale = Vector2(0.28841, 0.28841) +color = Color(0.270588, 0.145098, 0.0117647, 1) +polygon = PackedVector2Array(-110.953, 0, 232.308, 0, 232.308, -225.374, 138.691, -298.187, -180.299, -218.439, -110.953, -218.439) diff --git a/examples/simple_ai_logic/lumberjack.gd b/examples/simple_ai_logic/lumberjack.gd new file mode 100644 index 0000000..a8bf751 --- /dev/null +++ b/examples/simple_ai_logic/lumberjack.gd @@ -0,0 +1,102 @@ +extends Node2D + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +@export_category("Logger") + +@export var max_log_capacity:int = 2 + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +var logs_count:int = 0 + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +@onready var _btroot:BTRoot = $AI + +var _cutting_log:bool = false +var _cutting_tree:Node2D + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +func on_state_entered() : + _btroot.on_running.connect(func(s):print(s)) + _btroot.on_idle.connect(func():print("idle...")) + _btroot.enabled = true + +func can_carry_more_logs() -> bool: + return logs_count < max_log_capacity + +func has_no_log() -> bool: + return logs_count == 0 + +func has_remaining_trees() -> bool: + return not get_tree().get_nodes_in_group("tree").is_empty() + +func get_nearest_tree() -> Node2D: + var nearest_tree:Node2D + var nearest_distance_to_tree:float = 99999.0 + for tree in get_tree().get_nodes_in_group("tree"): + var distance_to_tree:float = global_position.distance_to(tree.global_position) + if distance_to_tree < nearest_distance_to_tree: + nearest_distance_to_tree = distance_to_tree + nearest_tree = tree + return nearest_tree + +func get_nearest_warehouse() -> Node2D: + var nearest_warehouse:Node2D + var nearest_distance_to_warehouse:float = 99999.0 + for warehouse in get_tree().get_nodes_in_group("warehouse"): + var distance_to_warehouse:float = global_position.distance_to(warehouse.global_position) + if distance_to_warehouse < nearest_distance_to_warehouse: + nearest_distance_to_warehouse = distance_to_warehouse + nearest_warehouse = warehouse + return nearest_warehouse + +func tree_is_valid(tree:Node2D) -> bool: + return is_instance_valid(tree) and tree.has_logs() + +func cut_log(tree:Node2D) -> int: + if not _cutting_log: + _cutting_log = true + _cutting_tree = tree + get_tree().create_timer(1).timeout.connect(_on_log_cut, CONNECT_ONE_SHOT) + return BTTickResult.RUNNING if _cutting_log else BTTickResult.FAILURE + +func drop_logs_to_warehouse() -> void: + logs_count = 0 + +func move_to(delta:float, node:Node2D) -> int: + if global_position.distance_to(node.global_position) > 10: + global_position = global_position.move_toward(node.global_position, delta * 300) + return BTTickResult.RUNNING + else: + return BTTickResult.SUCCESS + + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + +func _on_log_cut() -> void: + if is_instance_valid(_cutting_tree): + _cutting_tree.cut_log() + _cutting_tree = null + logs_count += 1 + _cutting_log = false diff --git a/examples/simple_ai_logic/lumberjack.tscn b/examples/simple_ai_logic/lumberjack.tscn new file mode 100644 index 0000000..3a44330 --- /dev/null +++ b/examples/simple_ai_logic/lumberjack.tscn @@ -0,0 +1,167 @@ +[gd_scene load_steps=11 format=3 uid="uid://bl8kvanpmae2g"] + +[ext_resource type="Script" path="res://examples/simple_ai_logic/lumberjack.gd" id="1_4c8nf"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/BTRoot.gd" id="2_hoy6d"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Composite/BTSelector.gd" id="3_5vl0m"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Composite/BTSequence.gd" id="4_c83di"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Decorators/BTInverter.gd" id="5_iaq0m"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Leaves/BTConditionCallable.gd" id="6_wov0v"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardSet.gd" id="7_f8o6y"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionCallable.gd" id="8_mjt8i"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Decorators/BTFailure.gd" id="9_ojjv5"] +[ext_resource type="Script" path="res://addons/yet_another_behavior_tree/src/Nodes/Leaves/BTActionBlackboardDelete.gd" id="10_7bq5a"] + +[node name="LumberJack" type="Node2D"] +script = ExtResource("1_4c8nf") + +[node name="Shape" type="Node2D" parent="."] + +[node name="Polygon2D" type="Polygon2D" parent="Shape"] +color = Color(0.54902, 0.0862745, 0.117647, 1) +polygon = PackedVector2Array(-2, -5, -2, -2, -1, -2, -1, 0, -4, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 5, 4, 5, 1, 0, 1, -2, 2, -2, 2, -5) + +[node name="AI" type="Node" parent="."] +script = ExtResource("2_hoy6d") +actor_path = NodePath("..") + +[node name="One Between" type="Node" parent="AI"] +script = ExtResource("3_5vl0m") + +[node name="Idle To Warehouse" type="Node" parent="AI/One Between"] +script = ExtResource("4_c83di") + +[node name="No Remaining Tree" type="Node" parent="AI/One Between/Idle To Warehouse"] +script = ExtResource("5_iaq0m") + +[node name="At Least One Tree" type="Node" parent="AI/One Between/Idle To Warehouse/No Remaining Tree"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../../..") +method_name = "has_remaining_trees" + +[node name="Has No Log" type="Node" parent="AI/One Between/Idle To Warehouse"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../..") +method_name = "has_no_log" + +[node name="Move To Nearest Warehouse" type="Node" parent="AI/One Between/Idle To Warehouse"] +script = ExtResource("4_c83di") + +[node name="Get Nearest Warehouse" type="Node" parent="AI/One Between/Idle To Warehouse/Move To Nearest Warehouse"] +script = ExtResource("7_f8o6y") +blackboard_key = "nearest_warehouse" +expression = "actor.get_nearest_warehouse()" +can_overwrite_value = true + +[node name="Move To Warehouse" type="Node" parent="AI/One Between/Idle To Warehouse/Move To Nearest Warehouse"] +script = ExtResource("8_mjt8i") +method_owner_path = NodePath("../../../../..") +method_name = "move_to" +method_arguments = Array[String](["delta", "blackboard.get_data(\"nearest_warehouse\")"]) + +[node name="Put Logs To Warehouse" type="Node" parent="AI/One Between"] +script = ExtResource("4_c83di") + +[node name="One Between" type="Node" parent="AI/One Between/Put Logs To Warehouse"] +script = ExtResource("3_5vl0m") + +[node name="Can NOT Carry More Logs" type="Node" parent="AI/One Between/Put Logs To Warehouse/One Between"] +script = ExtResource("5_iaq0m") + +[node name="Can Cary More Logs" type="Node" parent="AI/One Between/Put Logs To Warehouse/One Between/Can NOT Carry More Logs"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../../../..") +method_name = "can_carry_more_logs" + +[node name="No Remaining Tree" type="Node" parent="AI/One Between/Put Logs To Warehouse/One Between"] +script = ExtResource("5_iaq0m") + +[node name="At Least One Tree" type="Node" parent="AI/One Between/Put Logs To Warehouse/One Between/No Remaining Tree"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../../../..") +method_name = "has_remaining_trees" + +[node name="Move To Nearest Warehouse" type="Node" parent="AI/One Between/Put Logs To Warehouse"] +script = ExtResource("4_c83di") + +[node name="Get Nearest Warehouse" type="Node" parent="AI/One Between/Put Logs To Warehouse/Move To Nearest Warehouse"] +script = ExtResource("7_f8o6y") +blackboard_key = "nearest_warehouse" +expression = "actor.get_nearest_warehouse()" +can_overwrite_value = true + +[node name="Move To Warehouse" type="Node" parent="AI/One Between/Put Logs To Warehouse/Move To Nearest Warehouse"] +script = ExtResource("8_mjt8i") +method_owner_path = NodePath("../../../../..") +method_name = "move_to" +method_arguments = Array[String](["delta", "blackboard.get_data(\"nearest_warehouse\")"]) + +[node name="Drop Logs" type="Node" parent="AI/One Between/Put Logs To Warehouse"] +script = ExtResource("8_mjt8i") +method_owner_path = NodePath("../../../..") +method_name = "drop_logs_to_warehouse" + +[node name="Get Log" type="Node" parent="AI/One Between"] +script = ExtResource("4_c83di") + +[node name="Can Carry More Logs" type="Node" parent="AI/One Between/Get Log"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../..") +method_name = "can_carry_more_logs" + +[node name="Move To Nearest Tree" type="Node" parent="AI/One Between/Get Log"] +script = ExtResource("4_c83di") + +[node name="Has Remaning Trees" type="Node" parent="AI/One Between/Get Log/Move To Nearest Tree"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../../..") +method_name = "has_remaining_trees" + +[node name="Get Nearest Tree" type="Node" parent="AI/One Between/Get Log/Move To Nearest Tree"] +script = ExtResource("7_f8o6y") +blackboard_key = "nearest_tree" +expression = "actor.get_nearest_tree()" + +[node name="Stop If Nearest Tree If Invalid" type="Node" parent="AI/One Between/Get Log"] +script = ExtResource("4_c83di") + +[node name="OR" type="Node" parent="AI/One Between/Get Log/Stop If Nearest Tree If Invalid"] +script = ExtResource("3_5vl0m") + +[node name="Tree Is Valid" type="Node" parent="AI/One Between/Get Log/Stop If Nearest Tree If Invalid/OR"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../../../..") +method_name = "tree_is_valid" +method_arguments = Array[String](["blackboard.get_data(\"nearest_tree\")"]) + +[node name="Stop Because Tree Invalid" type="Node" parent="AI/One Between/Get Log/Stop If Nearest Tree If Invalid/OR"] +script = ExtResource("9_ojjv5") + +[node name="Delete Nearest Tree Ref" type="Node" parent="AI/One Between/Get Log/Stop If Nearest Tree If Invalid/OR/Stop Because Tree Invalid"] +script = ExtResource("10_7bq5a") +blackboard_key = "nearest_tree" + +[node name="Move To Tree" type="Node" parent="AI/One Between/Get Log"] +script = ExtResource("8_mjt8i") +method_owner_path = NodePath("../../../..") +method_name = "move_to" +method_arguments = Array[String](["delta", "blackboard.get_data(\"nearest_tree\")"]) + +[node name="Cut Tree" type="Node" parent="AI/One Between/Get Log"] +script = ExtResource("4_c83di") + +[node name="Nearest Tree Is Valid" type="Node" parent="AI/One Between/Get Log/Cut Tree"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../../..") +method_name = "tree_is_valid" +method_arguments = Array[String](["blackboard.get_data(\"nearest_tree\")"]) + +[node name="Can Carry More Logs" type="Node" parent="AI/One Between/Get Log/Cut Tree"] +script = ExtResource("6_wov0v") +method_owner_path = NodePath("../../../../..") +method_name = "can_carry_more_logs" + +[node name="Cut Log From Tree" type="Node" parent="AI/One Between/Get Log/Cut Tree"] +script = ExtResource("8_mjt8i") +method_owner_path = NodePath("../../../../..") +method_name = "cut_log" +method_arguments = Array[String](["blackboard.get_data(\"nearest_tree\")"]) diff --git a/examples/simple_ai_logic/main.gd b/examples/simple_ai_logic/main.gd new file mode 100644 index 0000000..905a50a --- /dev/null +++ b/examples/simple_ai_logic/main.gd @@ -0,0 +1,36 @@ +extends Node2D + +#------------------------------------------ +# Signaux +#------------------------------------------ + +#------------------------------------------ +# Exports +#------------------------------------------ + +#------------------------------------------ +# Variables publiques +#------------------------------------------ + +#------------------------------------------ +# Variables privées +#------------------------------------------ + +#------------------------------------------ +# Fonctions Godot redéfinies +#------------------------------------------ + +func _process(_delta:float) -> void: + if Input.is_action_just_released("ui_accept"): + var new_tree:Node2D = preload("res://examples/simple_ai_logic/env/tree.tscn").instantiate() + new_tree.global_position = get_global_mouse_position() + $Trees.add_child(new_tree) + +#------------------------------------------ +# Fonctions publiques +#------------------------------------------ + +#------------------------------------------ +# Fonctions privées +#------------------------------------------ + diff --git a/examples/simple_ai_logic/main.tscn b/examples/simple_ai_logic/main.tscn new file mode 100644 index 0000000..bf2ee68 --- /dev/null +++ b/examples/simple_ai_logic/main.tscn @@ -0,0 +1,104 @@ +[gd_scene load_steps=8 format=3 uid="uid://ccttcdvcigdoe"] + +[ext_resource type="Script" path="res://examples/simple_ai_logic/main.gd" id="1_23dkn"] +[ext_resource type="PackedScene" uid="uid://i4372roabk7a" path="res://examples/simple_ai_logic/env/warehouse.tscn" id="2_hh1py"] +[ext_resource type="PackedScene" path="res://examples/simple_ai_logic/env/tree.tscn" id="3_qyub5"] +[ext_resource type="PackedScene" uid="uid://bl8kvanpmae2g" path="res://examples/simple_ai_logic/lumberjack.tscn" id="4_782kh"] + +[sub_resource type="Gradient" id="Gradient_rssdc"] +colors = PackedColorArray(0.787759, 0.787759, 0.787759, 1, 1, 1, 1, 1) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_ql20u"] +noise_type = 2 +frequency = 0.005 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_181qe"] +width = 2050 +height = 2050 +color_ramp = SubResource("Gradient_rssdc") +noise = SubResource("FastNoiseLite_ql20u") + +[node name="World" type="Node2D"] +script = ExtResource("1_23dkn") + +[node name="Background" type="Polygon2D" parent="."] +color = Color(0.466667, 0.670588, 0, 1) +texture = SubResource("NoiseTexture2D_181qe") +polygon = PackedVector2Array(-7, -7, -7, -7, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, -7, 651, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1160, 655, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7, 1159, -7) + +[node name="Warehouses" type="Node2D" parent="."] + +[node name="Warehouse1" parent="Warehouses" instance=ExtResource("2_hh1py")] +position = Vector2(805, 229) + +[node name="Warehouse2" parent="Warehouses" instance=ExtResource("2_hh1py")] +position = Vector2(268, 556) + +[node name="Trees" type="Node2D" parent="."] +y_sort_enabled = true + +[node name="Tree" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(132, 126) + +[node name="Tree2" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(46, 69) + +[node name="Tree3" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(186, 110) + +[node name="Tree4" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(78, 126) + +[node name="Tree5" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(140, 185) + +[node name="Tree6" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(83, 215) + +[node name="Tree7" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(581, 604) + +[node name="Tree8" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(465, 473) + +[node name="Tree9" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(503, 523) + +[node name="Tree10" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(541, 495) + +[node name="Tree11" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(1044, 124) + +[node name="Tree12" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(1074, 235) + +[node name="Tree13" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(976, 178) + +[node name="Tree14" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(1035, 188) + +[node name="Tree15" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(1091, 155) + +[node name="Tree16" parent="Trees" instance=ExtResource("3_qyub5")] +position = Vector2(998, 101) + +[node name="GUI" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="ControlDesc" type="Label" parent="GUI"] +layout_mode = 0 +offset_left = 23.0 +offset_top = 605.0 +offset_right = 371.0 +offset_bottom = 631.0 +text = "SPACE : plant a tree at mouse location" + +[node name="LumberJack" parent="." instance=ExtResource("4_782kh")] +position = Vector2(685, 300) +scale = Vector2(3.5, 3.5) diff --git a/export_presets.cfg b/export_presets.cfg deleted file mode 100644 index d740d50..0000000 --- a/export_presets.cfg +++ /dev/null @@ -1,141 +0,0 @@ -[preset.0] - -name="windows" -platform="Windows Desktop" -runnable=true -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="" -script_export_mode=1 -script_encryption_key="" - -[preset.0.options] - -custom_template/debug="" -custom_template/release="" -binary_format/64_bits=true -binary_format/embed_pck=false -texture_format/bptc=false -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false -texture_format/no_bptc_fallbacks=true -codesign/enable=false -codesign/identity_type=0 -codesign/identity="" -codesign/password="" -codesign/timestamp=true -codesign/timestamp_server_url="" -codesign/digest_algorithm=1 -codesign/description="" -codesign/custom_options=PoolStringArray( ) -application/modify_resources=true -application/icon="" -application/file_version="" -application/product_version="" -application/company_name="" -application/product_name="" -application/file_description="" -application/copyright="" -application/trademarks="" - -[preset.1] - -name="mac" -platform="Mac OSX" -runnable=true -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="" -script_export_mode=1 -script_encryption_key="" - -[preset.1.options] - -custom_template/debug="" -custom_template/release="" -application/name="" -application/info="Made with Godot Engine" -application/icon="" -application/identifier="com.tonybark.mysim" -application/signature="" -application/app_category="Simulation-games" -application/short_version="1.0" -application/version="1.0" -application/copyright="" -display/high_res=false -privacy/microphone_usage_description="" -privacy/camera_usage_description="" -privacy/location_usage_description="" -privacy/address_book_usage_description="" -privacy/calendar_usage_description="" -privacy/photos_library_usage_description="" -privacy/desktop_folder_usage_description="" -privacy/documents_folder_usage_description="" -privacy/downloads_folder_usage_description="" -privacy/network_volumes_usage_description="" -privacy/removable_volumes_usage_description="" -codesign/enable=true -codesign/identity="" -codesign/timestamp=true -codesign/hardened_runtime=true -codesign/replace_existing_signature=true -codesign/entitlements/custom_file="" -codesign/entitlements/allow_jit_code_execution=false -codesign/entitlements/allow_unsigned_executable_memory=false -codesign/entitlements/allow_dyld_environment_variables=false -codesign/entitlements/disable_library_validation=false -codesign/entitlements/audio_input=false -codesign/entitlements/camera=false -codesign/entitlements/location=false -codesign/entitlements/address_book=false -codesign/entitlements/calendars=false -codesign/entitlements/photos_library=false -codesign/entitlements/apple_events=false -codesign/entitlements/debugging=false -codesign/entitlements/app_sandbox/enabled=false -codesign/entitlements/app_sandbox/network_server=false -codesign/entitlements/app_sandbox/network_client=false -codesign/entitlements/app_sandbox/device_usb=false -codesign/entitlements/app_sandbox/device_bluetooth=false -codesign/entitlements/app_sandbox/files_downloads=0 -codesign/entitlements/app_sandbox/files_pictures=0 -codesign/entitlements/app_sandbox/files_music=0 -codesign/entitlements/app_sandbox/files_movies=0 -codesign/custom_options=PoolStringArray( ) -notarization/enable=false -notarization/apple_id_name="" -notarization/apple_id_password="" -notarization/apple_team_id="" -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false - -[preset.2] - -name="linux" -platform="Linux/X11" -runnable=true -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="" -script_export_mode=1 -script_encryption_key="" - -[preset.2.options] - -custom_template/debug="" -custom_template/release="" -binary_format/64_bits=true -binary_format/embed_pck=false -texture_format/bptc=false -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false -texture_format/no_bptc_fallbacks=true diff --git a/icon.png.import b/icon.png.import index a4c02e6..c65fd9f 100644 --- a/icon.png.import +++ b/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://cxn8e2fwiq6g7" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..adc26df --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..d2447cc --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhr7dpstuvvl3" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/json/advisors/finacial.json b/json/advisors/finacial.json index 4a8d3a7..429d1cd 100644 --- a/json/advisors/finacial.json +++ b/json/advisors/finacial.json @@ -1,6 +1,6 @@ { - "name": "Kit Welsh", - "messages": { - "welcome": "Hello, Mayor, I'm Kit Welsh. I'll be your financial advisor. I control the income and expenditures for your city. I'll keep you up-to-date on expenditures and let you know if we may need to lower or rise taxes." - } -} \ No newline at end of file + "name": "Kit Welsh", + "messages": { + "welcome": "Hello, Mayor, I'm Kit Welsh. I'll be your financial advisor. I control the income and expenditures for your city. I'll keep you up-to-date on expenditures and let you know if we may need to lower or rise taxes." + } +} diff --git a/json/policies/cityplanner_analysis.json b/json/policies/cityplanner_analysis.json index 6028fdf..abf5d51 100644 --- a/json/policies/cityplanner_analysis.json +++ b/json/policies/cityplanner_analysis.json @@ -1,11 +1,11 @@ { - "1": { - "text": "Ut luctus tristique dui ac sagittis. Duis at turpis aliquam felis vestibulum vulputate at nec nisl. Curabitur dolor orci, facilisis eu interdum ac, maximus ut est. Aliquam erat volutpat. Nam mollis interdum nisi, non luctus massa pharetra sed. Maecenas vestibulum dapibus erat, sit amet semper risus. Suspendisse mollis tincidunt tempor. Quisque id porttitor risus, varius dictum odio. Quisque congue, lorem mollis efficitur imperdiet, lorem sem tincidunt turpis, at sodales magna ex sit amet diam. Mauris vehicula diam ante, in accumsan erat imperdiet et." - }, - "2": { - "text": "Fusce feugiat, dui sed feugiat feugiat, magna augue fermentum arcu, eget elementum ex dui lobortis mi. Nam tincidunt nunc a neque dapibus sollicitudin. Maecenas pellentesque magna sit amet quam luctus feugiat. Morbi id aliquam odio. Nullam ullamcorper risus nulla, nec mattis neque condimentum ac. Nunc hendrerit tellus ante. Phasellus imperdiet sit amet dolor ut ornare. Maecenas dapibus lectus eu lacinia ultricies. Ut id quam euismod, laoreet tortor quis, scelerisque orci. Praesent ornare tempus leo, sed egestas massa laoreet eget. Vivamus sagittis est ac condimentum fringilla. Nullam blandit rutrum quam non ullamcorper. Sed eget ex mattis, maximus massa at, pretium nisi." - }, - "3": { - "text": "Fusce feugiat, dui sed feugiat feugiat, magna augue fermentum arcu, eget elementum ex dui lobortis mi. Nam tincidunt nunc a neque dapibus sollicitudin. Maecenas pellentesque magna sit amet quam luctus feugiat. Morbi id aliquam odio. Nullam ullamcorper risus nulla, nec mattis neque condimentum ac. Nunc hendrerit tellus ante. Phasellus imperdiet sit amet dolor ut ornare. Maecenas dapibus lectus eu lacinia ultricies. Ut id quam euismod, laoreet tortor quis, scelerisque orci. Praesent ornare tempus leo, sed egestas massa laoreet eget. Vivamus sagittis est ac condimentum fringilla. Nullam blandit rutrum quam non ullamcorper. Sed eget ex mattis, maximus massa at, pretium nisi." - } -} \ No newline at end of file + "1": { + "text": "Ut luctus tristique dui ac sagittis. Duis at turpis aliquam felis vestibulum vulputate at nec nisl. Curabitur dolor orci, facilisis eu interdum ac, maximus ut est. Aliquam erat volutpat. Nam mollis interdum nisi, non luctus massa pharetra sed. Maecenas vestibulum dapibus erat, sit amet semper risus. Suspendisse mollis tincidunt tempor. Quisque id porttitor risus, varius dictum odio. Quisque congue, lorem mollis efficitur imperdiet, lorem sem tincidunt turpis, at sodales magna ex sit amet diam. Mauris vehicula diam ante, in accumsan erat imperdiet et." + }, + "2": { + "text": "Fusce feugiat, dui sed feugiat feugiat, magna augue fermentum arcu, eget elementum ex dui lobortis mi. Nam tincidunt nunc a neque dapibus sollicitudin. Maecenas pellentesque magna sit amet quam luctus feugiat. Morbi id aliquam odio. Nullam ullamcorper risus nulla, nec mattis neque condimentum ac. Nunc hendrerit tellus ante. Phasellus imperdiet sit amet dolor ut ornare. Maecenas dapibus lectus eu lacinia ultricies. Ut id quam euismod, laoreet tortor quis, scelerisque orci. Praesent ornare tempus leo, sed egestas massa laoreet eget. Vivamus sagittis est ac condimentum fringilla. Nullam blandit rutrum quam non ullamcorper. Sed eget ex mattis, maximus massa at, pretium nisi." + }, + "3": { + "text": "Fusce feugiat, dui sed feugiat feugiat, magna augue fermentum arcu, eget elementum ex dui lobortis mi. Nam tincidunt nunc a neque dapibus sollicitudin. Maecenas pellentesque magna sit amet quam luctus feugiat. Morbi id aliquam odio. Nullam ullamcorper risus nulla, nec mattis neque condimentum ac. Nunc hendrerit tellus ante. Phasellus imperdiet sit amet dolor ut ornare. Maecenas dapibus lectus eu lacinia ultricies. Ut id quam euismod, laoreet tortor quis, scelerisque orci. Praesent ornare tempus leo, sed egestas massa laoreet eget. Vivamus sagittis est ac condimentum fringilla. Nullam blandit rutrum quam non ullamcorper. Sed eget ex mattis, maximus massa at, pretium nisi." + } +} diff --git a/json/policies/proposels.json b/json/policies/proposels.json index d3938e2..7fbdb3c 100644 --- a/json/policies/proposels.json +++ b/json/policies/proposels.json @@ -1,14 +1,14 @@ { - "1": { - "name": "Industry for a better Tomorrow", - "text": "Ut luctus tristique dui ac sagittis. Duis at turpis aliquam felis vestibulum vulputate at nec nisl. Curabitur dolor orci, facilisis eu interdum ac, maximus ut est. Aliquam erat volutpat. Nam mollis interdum nisi, non luctus massa pharetra sed. Maecenas vestibulum dapibus erat, sit amet semper risus. Suspendisse mollis tincidunt tempor. Quisque id porttitor risus, varius dictum odio. Quisque congue, lorem mollis efficitur imperdiet, lorem sem tincidunt turpis, at sodales magna ex sit amet diam. Mauris vehicula diam ante, in accumsan erat imperdiet et." - }, - "2": { - "name": "Clean Air Act", - "text": "Fusce feugiat, dui sed feugiat feugiat, magna augue fermentum arcu, eget elementum ex dui lobortis mi. Nam tincidunt nunc a neque dapibus sollicitudin. Maecenas pellentesque magna sit amet quam luctus feugiat. Morbi id aliquam odio. Nullam ullamcorper risus nulla, nec mattis neque condimentum ac. Nunc hendrerit tellus ante. Phasellus imperdiet sit amet dolor ut ornare. Maecenas dapibus lectus eu lacinia ultricies. Ut id quam euismod, laoreet tortor quis, scelerisque orci. Praesent ornare tempus leo, sed egestas massa laoreet eget. Vivamus sagittis est ac condimentum fringilla. Nullam blandit rutrum quam non ullamcorper. Sed eget ex mattis, maximus massa at, pretium nisi." - }, - "3": { - "name": "Tire Recylcing Proposed", - "text": "Mayor [name], used tires a big are a big problem. They waste land space or accumlate in piles that, if ignited, pollute our air. Do you know that tires could be recycled and used in paving material? It can even reduce the cost of building roads. [city] would greatly benefit from having a tire recylcing program.\nWe could set the wheels in motion today, if you agree to enact the Tire Recylcing Program." - } -} \ No newline at end of file + "1": { + "name": "Industry for a better Tomorrow", + "text": "Ut luctus tristique dui ac sagittis. Duis at turpis aliquam felis vestibulum vulputate at nec nisl. Curabitur dolor orci, facilisis eu interdum ac, maximus ut est. Aliquam erat volutpat. Nam mollis interdum nisi, non luctus massa pharetra sed. Maecenas vestibulum dapibus erat, sit amet semper risus. Suspendisse mollis tincidunt tempor. Quisque id porttitor risus, varius dictum odio. Quisque congue, lorem mollis efficitur imperdiet, lorem sem tincidunt turpis, at sodales magna ex sit amet diam. Mauris vehicula diam ante, in accumsan erat imperdiet et." + }, + "2": { + "name": "Clean Air Act", + "text": "Fusce feugiat, dui sed feugiat feugiat, magna augue fermentum arcu, eget elementum ex dui lobortis mi. Nam tincidunt nunc a neque dapibus sollicitudin. Maecenas pellentesque magna sit amet quam luctus feugiat. Morbi id aliquam odio. Nullam ullamcorper risus nulla, nec mattis neque condimentum ac. Nunc hendrerit tellus ante. Phasellus imperdiet sit amet dolor ut ornare. Maecenas dapibus lectus eu lacinia ultricies. Ut id quam euismod, laoreet tortor quis, scelerisque orci. Praesent ornare tempus leo, sed egestas massa laoreet eget. Vivamus sagittis est ac condimentum fringilla. Nullam blandit rutrum quam non ullamcorper. Sed eget ex mattis, maximus massa at, pretium nisi." + }, + "3": { + "name": "Tire Recylcing Proposed", + "text": "Mayor [name], used tires a big are a big problem. They waste land space or accumlate in piles that, if ignited, pollute our air. Do you know that tires could be recycled and used in paving material? It can even reduce the cost of building roads. [city] would greatly benefit from having a tire recylcing program.\nWe could set the wheels in motion today, if you agree to enact the Tire Recylcing Program." + } +} diff --git a/json/saves/defualt.json b/json/saves/defualt.json index 7d2b905..4148696 100644 --- a/json/saves/defualt.json +++ b/json/saves/defualt.json @@ -1,4 +1,4 @@ { - "city": "Metropolis", - "mayor": "Defacto" -} \ No newline at end of file + "city": "Metropolis", + "mayor": "Defacto" +} diff --git a/json/saves/octy_file.json b/json/saves/octy_file.json index b36577a..5865ef0 100644 --- a/json/saves/octy_file.json +++ b/json/saves/octy_file.json @@ -1,43 +1,43 @@ { - "city": "Furtropolis", - "mayor": "Defacto", - "version": "0.1", - "zones": { - "commercial": { - "1": { - "x": 654, - "y": 564 - }, - "2": { - "x": 321, - "y": 85 - } - }, - "residential": { - "1": { - "x": 315, - "y": 564 - }, - "2": { - "x": 874, - "y": 843 - } - }, - "industrial": { - "1": { - "x": 156, - "y": 489 - }, - "2": { - "x": 845, - "y": 314 - } - } - }, - "buildings": { - "coal": { - "x": 648, - "y": 654 - } - } -} \ No newline at end of file + "city": "Furtropolis", + "mayor": "Defacto", + "version": "0.1", + "zones": { + "commercial": { + "1": { + "x": 654, + "y": 564 + }, + "2": { + "x": 321, + "y": 85 + } + }, + "residential": { + "1": { + "x": 315, + "y": 564 + }, + "2": { + "x": 874, + "y": 843 + } + }, + "industrial": { + "1": { + "x": 156, + "y": 489 + }, + "2": { + "x": 845, + "y": 314 + } + } + }, + "buildings": { + "coal": { + "x": 648, + "y": 654 + } + } +} diff --git a/json/ticker/config.json b/json/ticker/config.json index f7278b3..b5a3cef 100644 --- a/json/ticker/config.json +++ b/json/ticker/config.json @@ -1,11 +1,11 @@ { - "outlet": "Pawprint Press", - "competing_outlet": "Citizen Telegram", - "ticker_files": [ - "adverts.json", - "sammy.json", - "kittykibble.json", - "citylife.json", - "extra_lore.json" - ] -} \ No newline at end of file + "outlet": "Pawprint Press", + "competing_outlet": "Citizen Telegram", + "ticker_files": [ + "adverts.json", + "sammy.json", + "kittykibble.json", + "citylife.json", + "extra_lore.json" + ] +} diff --git a/json/zones/tower_names.json b/json/zones/tower_names.json index cca5c32..f9732e0 100644 --- a/json/zones/tower_names.json +++ b/json/zones/tower_names.json @@ -1,5 +1,5 @@ { - "tower_names": [ - {} - ] -} \ No newline at end of file + "tower_names": [ + {} + ] +} diff --git a/licenses/Unlicense.txt b/licenses/Unlicense.txt new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/licenses/Unlicense.txt @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/licenses/license_links/SimpleLicense.tres b/licenses/license_links/SimpleLicense.tres new file mode 100644 index 0000000..5cd3d96 --- /dev/null +++ b/licenses/license_links/SimpleLicense.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="LicenseLink" load_steps=3 format=3 uid="uid://d2b7iusbtenmi"] + +[ext_resource type="Script" path="res://addons/simplelicense/api/LicenseLink.gd" id="1_3or5k"] +[ext_resource type="Script" path="res://addons/simplelicense/plugin.gd" id="1_qarv5"] + +[resource] +script = ExtResource("1_3or5k") +link_files = Array[Resource]([]) +link_dirs = Array[Resource]([ExtResource("1_qarv5")]) +link_paths = [] +componet_name = "Simple License" +extra = "" +license_identifier = "CC0-1.0" +copyright = Array[String](["2023, GradyTheDev"]) diff --git a/project.godot b/project.godot index 40e806f..6f2f76c 100644 --- a/project.godot +++ b/project.godot @@ -6,180 +6,26 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 - -_global_script_classes=[ { -"base": "Leaf", -"class": "ActionLeaf", -"language": "GDScript", -"path": "res://addons/beehave/nodes/leaves/action.gd" -}, { -"base": "Decorator", -"class": "AlwaysFailDecorator", -"language": "GDScript", -"path": "res://addons/beehave/nodes/decorators/failer.gd" -}, { -"base": "Decorator", -"class": "AlwaysSucceedDecorator", -"language": "GDScript", -"path": "res://addons/beehave/nodes/decorators/succeeder.gd" -}, { -"base": "BeehaveTree", -"class": "BeehaveNode", -"language": "GDScript", -"path": "res://addons/beehave/nodes/beehave_node.gd" -}, { -"base": "BeehaveTree", -"class": "BeehaveRoot", -"language": "GDScript", -"path": "res://addons/beehave/nodes/beehave_root.gd" -}, { -"base": "Node", -"class": "BeehaveTree", -"language": "GDScript", -"path": "res://addons/beehave/nodes/beehave_tree.gd" -}, { -"base": "BeehaveNode", -"class": "Composite", -"language": "GDScript", -"path": "res://addons/beehave/nodes/composites/composite.gd" -}, { -"base": "Leaf", -"class": "ConditionLeaf", -"language": "GDScript", -"path": "res://addons/beehave/nodes/leaves/condition.gd" -}, { -"base": "BeehaveNode", -"class": "Decorator", -"language": "GDScript", -"path": "res://addons/beehave/nodes/decorators/decorator.gd" -}, { -"base": "Decorator", -"class": "InverterDecorator", -"language": "GDScript", -"path": "res://addons/beehave/nodes/decorators/inverter.gd" -}, { -"base": "BeehaveNode", -"class": "Leaf", -"language": "GDScript", -"path": "res://addons/beehave/nodes/leaves/leaf.gd" -}, { -"base": "Decorator", -"class": "LimiterDecorator", -"language": "GDScript", -"path": "res://addons/beehave/nodes/decorators/limiter.gd" -}, { -"base": "Composite", -"class": "SelectorComposite", -"language": "GDScript", -"path": "res://addons/beehave/nodes/composites/selector.gd" -}, { -"base": "Composite", -"class": "SelectorStarComposite", -"language": "GDScript", -"path": "res://addons/beehave/nodes/composites/selector_star.gd" -}, { -"base": "Composite", -"class": "SequenceComposite", -"language": "GDScript", -"path": "res://addons/beehave/nodes/composites/sequence.gd" -}, { -"base": "Composite", -"class": "SequenceStarComposite", -"language": "GDScript", -"path": "res://addons/beehave/nodes/composites/sequence_star.gd" -} ] -_global_script_class_icons={ -"ActionLeaf": "res://addons/beehave/icons/action.svg", -"AlwaysFailDecorator": "res://addons/beehave/icons/fail.svg", -"AlwaysSucceedDecorator": "res://addons/beehave/icons/succeed.svg", -"BeehaveNode": "res://addons/beehave/icons/action.svg", -"BeehaveRoot": "res://addons/beehave/icons/tree.svg", -"BeehaveTree": "", -"Composite": "res://addons/beehave/icons/category_composite.svg", -"ConditionLeaf": "res://addons/beehave/icons/condition.svg", -"Decorator": "res://addons/beehave/icons/category_decorator.svg", -"InverterDecorator": "res://addons/beehave/icons/inverter.svg", -"Leaf": "res://addons/beehave/icons/action.svg", -"LimiterDecorator": "res://addons/beehave/icons/limiter.svg", -"SelectorComposite": "res://addons/beehave/icons/selector.svg", -"SelectorStarComposite": "res://addons/beehave/icons/selector_star.svg", -"SequenceComposite": "res://addons/beehave/icons/sequencer.svg", -"SequenceStarComposite": "res://addons/beehave/icons/sequencer_star.svg" -} +config_version=5 [application] config/name="City Limits" -run/main_scene="res://scenes/Game.tscn" +config/description="Based on the original sprites, CityLimits is an open source reimagining of SimCity Classic based on Godot." +run/main_scene="res://scenes/game.tscn" +config/features=PackedStringArray("4.0", "Forward Plus") config/icon="res://icon.png" config/macos_native_icon="res://icon.icns" config/windows_native_icon="res://icon.ico" -config/version="0.0.1" -config/build=1000 - -[autoload] - -SimData="*res://scripts/autoload/sim_data.gd" -SimEvents="*res://scripts/autoload/sim_events.gd" -SimTime="*res://scripts/autoload/sim_time.gd" -ZoneData="*res://scripts/autoload/zone_data.gd" -JsonHelper="*res://scripts/autoload/jsonhelper.gd" - -[display] - -window/energy_saving/keep_screen_on=false -window/stretch/mode="2d" -window/stretch/aspect="keep" [editor_plugins] -enabled=PoolStringArray( "res://addons/beehave/plugin.cfg", "res://addons/godot-version-management/plugin.cfg" ) - -[gdnative] - -singletons=[ ] +enabled=PackedStringArray("res://addons/simplelicense/plugin.cfg", "res://addons/fontawesome/plugin.cfg", "res://addons/SpritesheetGenerator/plugin.cfg", "res://addons/yet_another_behavior_tree/plugin.cfg") [input] -ui_left={ +mb_left={ "deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) - ] +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +] } -ui_right={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) - ] -} -ui_up={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) - ] -} -ui_down={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) - ] -} -ui_cheats={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":true,"control":true,"meta":true,"command":true,"pressed":false,"scancode":67,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":true,"meta":true,"command":true,"pressed":false,"scancode":88,"physical_scancode":0,"unicode":0,"echo":false,"script":null) - ] -} - -[layer_names] - -2d_physics/layer_1="zones" - -[rendering] - -quality/driver/driver_name="GLES2" -2d/snapping/use_gpu_pixel_snap=true -environment/default_environment="res://default_env.tres" -quality/2d/use_pixel_snap=true diff --git a/resources/sc3k-ticker.txt b/resources/sc3k-ticker.txt deleted file mode 100644 index 65cc1a2..0000000 --- a/resources/sc3k-ticker.txt +++ /dev/null @@ -1,252 +0,0 @@ -50 Car Pile-Up Results In New City Sculpture -9 Out Of 10 Animals Prefer Cranberry Jelly Over Preserves -After 36 Years Of Marriage, Man Discovers Wife Is Actually A Rare Yucca Plant -All Raccoons Cheat At Poker, Animal Researchers Say -Ancient Meteorite Revealed To Be Burnt Burger -Ball Lightning Destroys Toupee But Polishes Victim's Car -Bark Art Exhibition By Bark Simson -Big Game Bistro Opens Amid Animal Rights Protests -Black And White Ball Disrupted By Bank Robbery -Black And White Ball Preparations Underway -Black And White Ball Raises Money For Charity -Bongos Making Big Comeback Among Unemployed Steelworkers -Bookstore Gets New Copies Of SimUlations: A Love Story -Boy Saves Cat From Tree, Thousands Cheer -Bread Baking Books Beat Bean Broiling -Broccoli Discovered To Be Colonies Of Tiny Aliens With Murder On Their Minds -Broccoli Found To Cause Grumpiness In Children -Broccoli Pops Cereal Not As Popular As Presumed -Broccoli Tops For Moms, Last For Kids; Dads Indifferent -Building Turned Into Aviary After Birds Stick To New Paint -Bus Misses Turn, Dozens Late For Work -Cab Fares In [city] To Increase; Animals Brace For Worst -Cable Disruption Blamed For Rising Birthrates -Cat Burglar Spotted, Mistaken For Dalmatian -Cat Hijacks Municipal Bus; Riders Applaud Good Timing At Stops And Courteous Meows -Cats Demand Longer Breaks, Cleaner Litter, Slower Mice -Cauliflower-Lovers Won't Let Broccoli-Eaters March In Their Neighborhood -Chefs Find Broccoli Effective Tool For Cutting Cheese -Citywide Blood Drive Highlights SimHealth Week -[city] Baker Wins Pickled Crumpet Toss Three Years Running -[city] Baton Twirlers To Lead Local Parade -[city] Makes Top 10 List -[outlet]: Important Things You Need To Know, More Or Less -[outlet]: A Quiet Voice Of Reason In A Noisy World -[outlet]: Accept No Substitutes -[outlet]: Don't Blame Us If You're Not Paying Attention -[outlet]: Don't Blame Us, We Just Report It -[outlet]: Easier To Find Because It Moves -[outlet]: For When You Have To Know But Would Rather Not -[outlet]: If It's Important To You, It Probably Is To Us Too -[outlet]: If You Read It Here, That Means It Happened -[outlet]: Information At A Readable Speed -[outlet]: Information That's A Luxury, Not A Necessity -[outlet]: Information With As Few Words As Possible -[outlet]: Journalistic Integrity Without All The Advertising -[outlet]: Just One Piece Of Information After Another -[outlet]: Left To Right Through Aesthetic Design -[outlet]: No Advertisements Since Before The Beginning -[outlet]: Not For The Faint Of Heart -[outlet]: Not Too Fast, Not Too Slow, Just Right -[outlet]: Pretty Darn Accurate Most Of The Time -[outlet]: Properly Spelled Words From Beginning To End -[outlet]: Sometimes We're Just Here To Make You Smile -[outlet]: Where We Report On Busses, Not Buses -[outlet]: Your Total Information Source -[city] Racewalkers Win All-City Title -[city] Society Gather To Honor Visiting Potentate, Exchange Kitties -[city] Tourist Bureau Launches City Beautification Project -[city] Phonebooks Print All Wrong Numbers; Results In 15 New Marriages -Consider A Career In Garbage Collection -Crime Lord Spotted In [city]; Mayor Says \"No Comment\" -Cross-Eyed Python Found To Be Running Successful Chain Of All-Night Laundromats -Cure For Senility Found, But Lost Before Being Recorded. -Daily Special At Restaurant Found To Be Big Fat Lie -Ditzy Debutante Mistakes Broccoli Floret For Nosegay -Don't Forget To Pick Up Your Litter -Doughnuts: Is There Anything They Can't Do? -Eagerly Awaited Llama Exhibition Coming Soon -Eckelberry Marmalade May Cure Hiccups, Doctors Say -Esoteric Verbosity Culminates In Communicative Ennui, Teachers Note -Experts Advise Using Sunblock As Sunny Weather Continues -Eyes Move While Reading Tickers, Scientists Speculate -Famed Prognosticator Warns \"Disaster Awaits Us All\" -Floor Sweepings Found To Be Tangier Than Salt And Pepper -For More Information, Send 9 Million Simoleons To The \"Broccoli Education Foundation\" -Foreign Potentate Becomes Lost In [city] [mayor], Refuses To Ask For Directions -Former High School Principal Caught Licking Stamps Behind Post Office Counter -Four In Five [city] [mayor] Children Won't Eat Mono-Colored Cereals -French Kissing Leads To Higher Croissant Use, Authorities Warn -Fresh Fruit In Season Is Berry, Berry Good -Giant Hairball Has Perfect Grammar, Linguists Say -Girl Rides Bicycle Across City Phone Wires; Arrested For Eavesdropping -Gravy Tastes Better When Loudly Slurped; Scientists Baffled -Gymnastics Program Growing By Leaps And Bounds -Ham-Handedness Doesn't Lead To Higher Cholesterol, Researchers Declare -\"Hang Up And Drive\" Say Citizens Against Cell Phones -Heads Roll When Rollerblader Hits Tourist Group -Here Comes The Sun -House Made Entirely Of Broccoli Built In [city] [mayor]; Furniture Made Of Wheat Germ -Humming Show Tunes Sure Sign Of Poor Motor Skills, Researchers Declare -I Was Framed, Jokes Local Artist -\"I'm Just A [species], [species], Simple Guy\" Rises To Top Of Charts -If Tin Whistles Are Made Of Tin, What Do They Make Foghorns Out Of? -Information Shown Here Frequently Absurd, Poll Indicates -Lady's Knitting Circle Raises Cash For Homeless -Linguistics Experts Discuss \"Left To Right Or Right To Left; Is One Better?\" -Local Cop Found To Be Ticketing Only Lantern-Jawed Males -Local Kindergartners Prefer Oi Brand Paste; Claim It Just Tastes Better -Local Mustard Magnate Marries Daughter Of Dill Pickle Mogul -Local Politicians Take Both Sides Of Issues, Little Accomplished -Local Scientists Conclude: Kitties Like Fish, Dogs Less Picky -Local [species] Bill Flopsby Heads County Commission On Snuggles And Hugs -Local [species] Discovers Just Who Wrote Book Of Love -Local [species] Mentioned In Out Of Town Newspaper; Starts Scrapbook -Lou Turns Away Every Person Who Skips To Her; \"They Have No Rhythm,\" She Says -Lunar Eclipse Obscured By Clouds -Lying Found To Be Effective Calorie Reducer -Man Caught Shoplifting Spatulas; Thousands Of Flippers Found In Bedroom -Man Discovers Neighbor Completely Enclosed In Mailbox; Returns Him For Postage -Man Survives Wintry Night Adhered To Bus Bench By Chewing Gum -Marathon! Animals Hit The Ground Running -Mediums Agree Blue-Striped Socks No More Lucky Than Clovers Or Pennies -Middle Age A Hoax, Declares Study; Turns Out To Be Bad Posture After All -Miracle Lint Remover Based On Broccoli Juice Sweeps Market -Molasses Truck Springs Leak; Sweetest Accident In Long Time -Most Animals Ignore Tickers, Study Reveals -Mrs. SimLeary Gets Prize Cow -Mysterious Loud Rumbling Noises In [city] name Found To Be Mysterious Loud Rumblings -Never Feed Broccoli To Your Dog, No Matter How Much He Begs -Newspaper Boy Crime Ring Cracked: Read All Over -Nutritionists Aver That Eating Broccoli Encourages Higher Bowling Scores -Oliver \"Slim Jim\" Golonsky Wins [city] Inter-Location Obstacle Race -Ordinary Days In [city] Become Common -Original Magna Carta Found Written On Large Broccoli Stalk -Pigeon Alert! Extreme Pigeon Danger! -Pistol Packing Punks Pilfer Precious Petunias -Pot-Bellied Pigs Named Bob Convention Highlight Of Season -Psychic K.C. Edgars Predicts City To Grow -Public Displays Of Affection Common Sight Near City Hall -Public Service Message: Pooper Scoopers Urged When Walking Dogs -Rap Music Causes Hangnails, Study Shows. -Regional Catsup King Cousin To Tie Knot With Toothpick Tycoon -Rock Star Spotted In Llama Fur Near Casa Del Sticky -Rockin' Good Thrash Metal Found To Reverse Aging Process -School Field Trip To Museum Sparks Interest In Local History -Scientists Assert That Swearing Is Source Of Bad Breath -Semicolon Declared Sexier Than Comma At Grammarian's Fete -Shopping After Hours Source Of Purchase Embarrassment Says Survey -[species] Offers To Let City Bus Run Him Over For Lifetime Salad Bar Privileges -[species] Scientist Discovers Gravity While Falling Down Stairs -SimFirefighters Wanted: Apply At Your Local Fire Station -Nethington Report: Criminals Demand Cell Phones -Nethington To Host Energy Symposium -Police Officers Wanted: Apply At Your Local Police Precinct -Scientist Discovers Abacus Can Be Used To Dry Towels -Scientist Discovers New Dry Cleaning Method Using Sparklers -Survey Reports Rise in Vegetarian Animals -Survey: \"Cheese Louise\" Voted Best Pizza Restaurant In [city] [mayor] -Survey: 3 Out Of 5 Animals Loathe Modern Art -Survey: 4 Out Of 5 Animals Prefer Hard Cheese To Brie -Survey: 4 Out Of 5 Animals Surveyed Find Surveys Satisfactory -Survey: 50% Of Animals Say YES -Survey: 80% Of Animals Hang Up On Telephone Solicitors -Survey: 80% Of Animals Love Clog-Dancing -Survey: Animals Sleep Seven Hours -Animals Everywhere Agree: A Sound Financial Future Begins With Inheriting Lots Of Money -Animals Everywhere Agree: All Sales Are Final -Animals Everywhere Agree: Brush Before, After, And Between Meals -Animals Everywhere Agree: For The Best In News Ticker Entertainment, The Picayune Can't Be Beat -Animals Everywhere Agree: Frequent Saving Prevents File Loss -Animals Everywhere Agree: Good Grooming Is Essential To Success -Animals Everywhere Agree: History Laughs At Many People Who Deserved To Be Laughed At -Animals Everywhere Agree: If You Throw A Stone, It Will Hit Something -Animals Everywhere Agree: It's Not What You Make, It's What You Keep -Animals Everywhere Agree: Past Performance Does Not Guarantee Future Returns -Animals Everywhere Agree: Purring Kitties Are Happy Kitties -Animals Everywhere Agree: The Egg Came First, But Only After The Chicken -Animals Everywhere Agree: Vote Early, Vote Often -Animals Everywhere Agree: Your Actual Costs May Vary -Animals Flock To Grand Opening Of Betty's Bird Boutique -Animals Report Widespread SimAnt Problem -Skirmish At Writer's Workshop, Speaker Used Fighting Words -Some Destruction, But Not Too Much, In Practical Joke Derby -Spotted Owl Spotted -Stand Up And Cheer If You Like SimCity -Staring At Football-Shaped Bladders Good For Concentration, Researchers Proclaim -Staring At Lapping Ocean Waves Makes You More Assertive During Lunch -State Governor Found To Be Mule; \"His Clothes Always Fit Funny,\" Says Aide -Studies Show Most Animals Mispronounce \"Zsdersw\" -Study Demonstrates That Singing In The Shower Makes Teeth Crooked -Survey Shows Less Is More, More Or Less -Swamp Gas Verified To Be Exhalations Of Stars--Movie Stars--Long Passed -Tainted Broccoli Weapon Of Choice For Global Assassins -Talking Broccoli Hosts Talk Show; Guests A \"Bunch Of Vegetables\" -Tapped Out: Local Brewery Closes Its Doors. -Ten Teachers With Cardiac Arrest After Students Declare Love Of Beowulf -This Space For Rent -Timmy Falls Down Well, Climbing Needs Work -Tip Of The Day Provides Interesting Tidbits, Mayors Agree -Today's Forecast: Cold, Cloudy, With Occasional Showers -Today's Forecast: Sunny, High 70's, Winds From The East -Today's Forecast: Windy And Cooler Than Yesterday -Traveling Truck Technician Talks Transmissions Tuesday -Tree Stuck In Cat; Firefighters Baffled -Truckload Of Apples Overturns, [city] Diner Offers Applesauce Special -Typist Involved In Winter Traffic Accident, White-Out Conditions Blamed -UFO Seen And Disavowed -Unsalted Tortilla Chips Best Cure For Colds Says Health Nut -\"Weasels Are Warm And Wonderful\" Day At [city] Mall -Weasel Rejected As [city]'s Crime-Fighting Mascot -Weather Likely To Become Different Before Changing - - -From The Desk Of Wise Guy Sammy: A Person Who Likes Cats Can't Be All Bad -From The Desk Of Wise Guy Sammy: Better To Aim High And Miss Then To Aim Low And Hit -From The Desk Of Wise Guy Sammy: Check Your Facts Before Making A Fool Of Yourself -From The Desk Of Wise Guy Sammy: Help Is The Sunny Side Of Control -From The Desk Of Wise Guy Sammy: If You Made The Mess, You Clean It Up -From The Desk Of Wise Guy Sammy: It Is Easier To Get Forgiveness Than Permission -From The Desk Of Wise Guy Sammy: It's Better To Yield Right Of Way Than To Demand It -From The Desk Of Wise Guy Sammy: It's Hard To Have Too Much Shelf Space -From The Desk Of Wise Guy Sammy: Lightning Often Strikes The Same Place More Than Once -From The Desk Of Wise Guy Sammy: One Word In This Ticker Is Mispelled -From The Desk Of Wise Guy Sammy: One Word In This Ticker Is Sdrawkcab (Backwards) -From The Desk Of Wise Guy Sammy: One Word In This Ticker Is Wrong -From The Desk Of Wise Guy Sammy: Reading Improves The Mind And Lifts The Spirit -From The Desk Of Wise Guy Sammy: The Insides Of Golf Balls Are Mostly Rubber Bands -From The Desk Of Wise Guy Sammy: Two Points Determine A Straight Line -From The Desk Of Wise Guy Sammy: Wine And Friendships Get Better With Age -From The Desk Of Wise Guy Sammy: You Can't Outwait A Bureaucracy -From The Desk Of Wise Guy Sammy: You Don't Have To Fool All The People, Just The Right Ones - - -Rumor Of Kitty Kibble Shortage Causes Futures To Drop; Consumers Stockpile -Local Merchants Puzzled By Rumors Of Kitty Kibble Shortage; \"We Have Plenty,\" Say Most -Kitties Concerned By Rumors Of Kitty Kibble Shortage; Owners In Panic -No Kitty Kibble Shortage Says Local Representative Of Kitty Kibble Association -Is Kitty Kibble Shortage Real? Authorities Say Rumors Unfounded -Unlicensed Kitty Kibble Factory Fuels Rumors Of Shortage -Enough Kitty Kibble For Twenty Years, Experts Agree -Kitty Kibble Association Flooded With Letters: Where Is Kitty Kibble? -Is Kitty Kibble Shortage A Hoax? Animals Search For Truth -Rumors Persist In Kitty Kibble Shortage; Unfounded Say Many -Kitties Want Answers In Possible Kitty Kibble Shortage -Kitties Say Not Enough Being Done In Kitty Kibble Shortage -No Kitty Kibble Shortage, Officials Insist; Kitties Skeptical - - -Tommy B. Saif Sez: Accept No Substitutes, And Don't Be Fooled By Imitations -Tommy B. Saif Sez: Always Mix Thoroughly When So Instructed -Tommy B. Saif Sez: Change Not Given Without Purchase -Tommy B. Saif Sez: Do Not Remove This Tag Under Penalty Of Law -Tommy B. Saif Sez: Eating And Drinking On Station Platforms Is Prohibited -Tommy B. Saif Sez: Hold On; Sudden Stops Sometimes Necessary -Tommy B. Saif Sez: If You Break It, You Buy It -Tommy B. Saif Sez: Keep Fingers Away From Moving Panels -Tommy B. Saif Sez: Look Both Ways Before Crossing The Street -Tommy B. Saif Sez: No Left Turn, Except Buses -Tommy B. Saif Sez: Reservations Must Be Cancelled 48 Hours Prior To Event To Obtain Refund -Tommy B. Saif Sez: Return Seats And Trays To Their Proper Upright Position -Tommy B. Saif Sez: Stay Within The Crosswalk -Tommy B. Saif Sez: Try To Keep Six Month's Expenses In Reserve \ No newline at end of file diff --git a/scenes/Menu.tscn b/scenes/Menu.tscn deleted file mode 100644 index 2ec398f..0000000 --- a/scenes/Menu.tscn +++ /dev/null @@ -1,76 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://scripts/city_status.gd" type="Script" id=1] - -[node name="Menu" type="Panel"] -anchor_right = 1.0 -margin_bottom = 32.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="StatCtr" type="HBoxContainer" parent="."] -anchor_left = 0.0136054 -anchor_top = 0.257143 -anchor_right = 0.312925 -anchor_bottom = 0.817143 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="CityNameLbl" type="Label" parent="StatCtr"] -margin_top = 1.0 -margin_right = 66.0 -margin_bottom = 15.0 -text = "City Name" -align = 1 - -[node name="YearLbl" type="Label" parent="StatCtr"] -margin_left = 70.0 -margin_top = 1.0 -margin_right = 109.0 -margin_bottom = 15.0 -text = "Y1980" -align = 1 - -[node name="BudgetLbl" type="Label" parent="StatCtr"] -margin_left = 113.0 -margin_top = 1.0 -margin_right = 128.0 -margin_bottom = 15.0 -text = "§0" -align = 1 - -[node name="ButtonCtr" type="HBoxContainer" parent="."] -anchor_left = 0.733722 -anchor_top = 0.212291 -anchor_right = 0.987366 -anchor_bottom = 0.818005 -margin_top = -0.906677 -margin_bottom = 3.95047 -alignment = 2 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="TaxBtn" type="Button" parent="ButtonCtr"] -margin_left = 105.0 -margin_right = 138.0 -margin_bottom = 24.0 -text = "RCI" -flat = true - -[node name="AdvsiorBtn" type="Button" parent="ButtonCtr"] -margin_left = 142.0 -margin_right = 209.0 -margin_bottom = 24.0 -text = "Advisors" -flat = true - -[node name="ToolsBtn" type="Button" parent="ButtonCtr"] -margin_left = 213.0 -margin_right = 259.0 -margin_bottom = 24.0 -text = "Tools" -flat = true diff --git a/scenes/Start.tscn b/scenes/Start.tscn deleted file mode 100644 index 1be1066..0000000 --- a/scenes/Start.tscn +++ /dev/null @@ -1,77 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://scripts/start_game.gd" type="Script" id=1] -[ext_resource path="res://scenes/maps/MapOne.tscn" type="PackedScene" id=2] - -[node name="SartMenu" type="Node"] - -[node name="MapOne" parent="." instance=ExtResource( 2 )] - -[node name="Controls" type="CanvasLayer" parent="."] - -[node name="Start" type="Panel" parent="Controls"] -anchor_left = 0.367188 -anchor_top = 0.378333 -anchor_right = 0.632812 -anchor_bottom = 0.646667 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="Container" type="VBoxContainer" parent="Controls/Start"] -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 24.0 -margin_top = 28.0 -margin_right = -29.0 -margin_bottom = -28.0 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="Label" type="Label" parent="Controls/Start/Container"] -margin_right = 218.0 -margin_bottom = 14.0 -text = "Welcome to City Limits!" -align = 1 - -[node name="CityNameEdit" type="LineEdit" parent="Controls/Start/Container"] -margin_top = 18.0 -margin_right = 218.0 -margin_bottom = 42.0 -align = 1 -caret_blink = true -caret_blink_speed = 0.5 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="MayorNameEdit" type="LineEdit" parent="Controls/Start/Container"] -margin_top = 46.0 -margin_right = 218.0 -margin_bottom = 70.0 -align = 1 -caret_blink = true -caret_blink_speed = 0.5 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="BudgetMenu" type="MenuButton" parent="Controls/Start/Container"] -margin_top = 74.0 -margin_right = 218.0 -margin_bottom = 94.0 -text = "Starting Budget" -items = [ "20000", null, 0, false, false, 0, 0, null, "", false, "10000", null, 0, false, false, 1, 0, null, "", false, "500", null, 0, false, false, 2, 0, null, "", false ] -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="CreateBtn" type="Button" parent="Controls/Start/Container"] -margin_top = 98.0 -margin_right = 218.0 -margin_bottom = 118.0 -text = "Create" - -[connection signal="pressed" from="Controls/Start/Container/CreateBtn" to="Controls/Start" method="_on_CreateBtn_pressed"] diff --git a/scenes/deparments/CoalPlant.tscn b/scenes/deparments/CoalPlant.tscn deleted file mode 100644 index 6729fa6..0000000 --- a/scenes/deparments/CoalPlant.tscn +++ /dev/null @@ -1,59 +0,0 @@ -[gd_scene load_steps=8 format=2] - -[ext_resource path="res://scripts/simtactics/turn_on.gd" type="Script" id=1] -[ext_resource path="res://assets/coal.png" type="Texture" id=2] -[ext_resource path="res://addons/beehave/nodes/composites/sequence.gd" type="Script" id=3] -[ext_resource path="res://scripts/simtactics/zone.gd" type="Script" id=4] -[ext_resource path="res://addons/beehave/nodes/beehave_root.gd" type="Script" id=6] - -[sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 32.2297, 31.8602 ) - -[sub_resource type="Animation" id=2] -resource_name = "Animante" -length = 5.0 -loop = true -step = 1.0 -tracks/0/type = "value" -tracks/0/path = NodePath("Sprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 1, 2, 3, 4 ), -"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), -"update": 1, -"values": [ 1, 2, 3, 4, 6 ] -} - -[node name="PowerStation" type="KinematicBody2D"] -input_pickable = true - -[node name="BeehaveRoot" type="Node" parent="."] -script = ExtResource( 6 ) - -[node name="SequenceComposite" type="Node" parent="BeehaveRoot"] -script = ExtResource( 3 ) - -[node name="TurnOn" type="Node" parent="BeehaveRoot/SequenceComposite"] -script = ExtResource( 1 ) - -[node name="ActionLeaf" type="Node" parent="BeehaveRoot/SequenceComposite"] -script = ExtResource( 4 ) -zone_texture = "res://assets/res_houses.png" - -[node name="Quarters" type="Timer" parent="."] -wait_time = 10.0 - -[node name="Sprite" type="Sprite" parent="."] -texture = ExtResource( 2 ) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource( 1 ) - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -playback_speed = 5.0 -anims/Animante = SubResource( 2 ) - -[node name="RayCast2D" type="RayCast2D" parent="."] diff --git a/scenes/deparments/Zone.tscn b/scenes/deparments/Zone.tscn deleted file mode 100644 index 7899a9a..0000000 --- a/scenes/deparments/Zone.tscn +++ /dev/null @@ -1,72 +0,0 @@ -[gd_scene load_steps=9 format=2] - -[ext_resource path="res://scripts/zone.gd" type="Script" id=1] -[ext_resource path="res://assets/res_zones.png" type="Texture" id=2] -[ext_resource path="res://scripts/simtactics/has_power.gd" type="Script" id=4] -[ext_resource path="res://addons/beehave/nodes/beehave_root.gd" type="Script" id=5] -[ext_resource path="res://addons/beehave/nodes/composites/selector.gd" type="Script" id=7] - -[sub_resource type="Animation" id=2] -resource_name = "Animante" -length = 5.0 -step = 1.0 -tracks/0/type = "value" -tracks/0/path = NodePath("Sprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 1, 2, 3, 4 ), -"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), -"update": 1, -"values": [ 0, 1, 2, 3, 4 ] -} - -[sub_resource type="Animation" id=4] -length = 0.001 -tracks/0/type = "value" -tracks/0/path = NodePath("Sprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ 1 ] -} - -[sub_resource type="CircleShape2D" id=3] -radius = 34.955 - -[node name="Zone" type="Area2D"] -script = ExtResource( 1 ) - -[node name="Sprite" type="Sprite" parent="."] -texture = ExtResource( 2 ) -vframes = 19 -frame = 1 - -[node name="BeehaveRoot" type="Node" parent="."] -script = ExtResource( 5 ) - -[node name="SelectorComposite" type="Node" parent="BeehaveRoot"] -script = ExtResource( 7 ) - -[node name="HasPower" type="Node" parent="BeehaveRoot/SelectorComposite"] -script = ExtResource( 4 ) - -[node name="Quarters" type="Timer" parent="."] -wait_time = 10.0 - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/Animante = SubResource( 2 ) -anims/RESET = SubResource( 4 ) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource( 3 ) - -[connection signal="body_entered" from="." to="." method="_on_Zone_body_entered"] -[connection signal="body_exited" from="." to="." method="_on_Zone_body_exited"] diff --git a/scenes/game.tscn b/scenes/game.tscn index e471677..f2c6a1e 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,486 +1,13 @@ -[gd_scene load_steps=50 format=2] +[gd_scene load_steps=2 format=3 uid="uid://bbputgwi8xsfd"] -[ext_resource path="res://scenes/maps/MapOne.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/beehave/nodes/composites/selector.gd" type="Script" id=2] -[ext_resource path="res://assets/symbols/fontawesome/population.svg" type="Texture" id=3] -[ext_resource path="res://scenes/windows/Advisor.tscn" type="PackedScene" id=4] -[ext_resource path="res://assets/ui/iccom.png" type="Texture" id=5] -[ext_resource path="res://scenes/windows/DebugConsole.tscn" type="PackedScene" id=6] -[ext_resource path="res://assets/symbols/fontawesome/fast.svg" type="Texture" id=7] -[ext_resource path="res://assets/symbols/fontawesome/slow.svg" type="Texture" id=8] -[ext_resource path="res://assets/ui/icres.png" type="Texture" id=9] -[ext_resource path="res://assets/ui/icreshi.png" type="Texture" id=10] -[ext_resource path="res://assets/ui/icfire.png" type="Texture" id=11] -[ext_resource path="res://assets/ui/icindhi.png" type="Texture" id=12] -[ext_resource path="res://assets/ui/icind.png" type="Texture" id=13] -[ext_resource path="res://assets/ui/icqryhi.png" type="Texture" id=14] -[ext_resource path="res://assets/ui/icqry.png" type="Texture" id=15] -[ext_resource path="res://assets/ui/icpol.png" type="Texture" id=16] -[ext_resource path="res://assets/ui/icdozr.png" type="Texture" id=17] -[ext_resource path="res://assets/ui/iccoalhi.png" type="Texture" id=18] -[ext_resource path="res://assets/ui/iccoal.png" type="Texture" id=19] -[ext_resource path="res://scripts/game.gd" type="Script" id=20] -[ext_resource path="res://scenes/windows/Meet.tscn" type="PackedScene" id=21] -[ext_resource path="res://assets/ui/icparkhi.png" type="Texture" id=22] -[ext_resource path="res://assets/ui/icnuc.png" type="Texture" id=23] -[ext_resource path="res://assets/ui/icpark.png" type="Texture" id=24] -[ext_resource path="res://assets/ui/icnuchi.png" type="Texture" id=25] -[ext_resource path="res://assets/ui/icseap.png" type="Texture" id=26] -[ext_resource path="res://assets/ui/icseaphi.png" type="Texture" id=27] -[ext_resource path="res://assets/ui/icstad.png" type="Texture" id=28] -[ext_resource path="res://assets/ui/icpolhi.png" type="Texture" id=29] -[ext_resource path="res://assets/ui/iccomhi.png" type="Texture" id=30] -[ext_resource path="res://assets/ui/icdozrhi.png" type="Texture" id=31] -[ext_resource path="res://scenes/windows/TaxWindow.tscn" type="PackedScene" id=32] -[ext_resource path="res://assets/ui/icfirehi.png" type="Texture" id=33] -[ext_resource path="res://scenes/windows/Credits.tscn" type="PackedScene" id=34] -[ext_resource path="res://assets/symbols/fontawesome/cogs.svg" type="Texture" id=35] -[ext_resource path="res://assets/symbols/fontawesome/calendar.svg" type="Texture" id=36] -[ext_resource path="res://scripts/windows.gd" type="Script" id=37] -[ext_resource path="res://scripts/city_status.gd" type="Script" id=38] -[ext_resource path="res://assets/ui/pause.svg" type="Texture" id=39] -[ext_resource path="res://assets/symbols/fontawesome/pie-chart.svg" type="Texture" id=40] -[ext_resource path="res://assets/symbols/fontawesome/coins.svg" type="Texture" id=41] -[ext_resource path="res://assets/symbols/fontawesome/city.svg" type="Texture" id=42] -[ext_resource path="res://assets/symbols/fontawesome/envelope.svg" type="Texture" id=43] -[ext_resource path="res://scenes/windows/Ordinance.tscn" type="PackedScene" id=44] -[ext_resource path="res://scripts/ticker.gd" type="Script" id=45] -[ext_resource path="res://addons/beehave/nodes/beehave_root.gd" type="Script" id=46] -[ext_resource path="res://scenes/deparments/CoalPlant.tscn" type="PackedScene" id=47] -[ext_resource path="res://addons/beehave/nodes/beehave_node.gd" type="Script" id=48] -[ext_resource path="res://scenes/deparments/Zone.tscn" type="PackedScene" id=49] +[ext_resource type="PackedScene" uid="uid://bslfk5as420f7" path="res://scenes/item_select.tscn" id="1_rtv6q"] -[node name="Game" type="Node2D"] -script = ExtResource( 20 ) +[node name="Game" type="Node"] -[node name="BeehaveRoot" type="Node" parent="."] -script = ExtResource( 46 ) +[node name="Level" type="Node2D" parent="."] -[node name="DayCycle" type="Node" parent="BeehaveRoot"] -script = ExtResource( 2 ) +[node name="Editor" type="Node2D" parent="."] -[node name="BeehaveNode" type="Node" parent="BeehaveRoot/DayCycle"] -script = ExtResource( 48 ) +[node name="Sprite2D" type="Sprite2D" parent="Editor"] -[node name="MapOne" parent="." instance=ExtResource( 1 )] - -[node name="Controls" type="CanvasLayer" parent="."] - -[node name="Control Panel" type="Control" parent="Controls"] -margin_right = 40.0 -margin_bottom = 40.0 -script = ExtResource( 45 ) - -[node name="Windows" type="Control" parent="Controls/Control Panel"] -anchor_right = 25.65 -anchor_bottom = 12.9 -script = ExtResource( 37 ) -__meta__ = { -"_edit_lock_": true, -"_edit_use_anchors_": true -} - -[node name="Console" parent="Controls/Control Panel/Windows" instance=ExtResource( 6 )] -anchor_left = 0.590492 -anchor_top = 0.0604199 -anchor_right = 0.985023 -anchor_bottom = 0.312087 -rect_min_size = Vector2( 400, 150 ) -resizable = true - -[node name="CityPlanner" parent="Controls/Control Panel/Windows" instance=ExtResource( 4 )] - -[node name="TaxWindow" parent="Controls/Control Panel/Windows" instance=ExtResource( 32 )] -visible = false -anchor_left = 0.297863 -anchor_top = 0.409167 -anchor_right = 0.702137 -anchor_bottom = 0.590833 -margin_bottom = 3.05176e-05 - -[node name="AdvisorMeet" parent="Controls/Control Panel/Windows" instance=ExtResource( 21 )] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -234.609 -margin_top = -138.5 -margin_right = 234.609 -margin_bottom = 138.5 - -[node name="ToolsWindow" type="WindowDialog" parent="Controls/Control Panel/Windows"] -anchor_left = 0.402435 -anchor_top = 0.315697 -anchor_right = 0.60263 -anchor_bottom = 0.684303 -window_title = "Tools" -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="CenterCtr" type="CenterContainer" parent="Controls/Control Panel/Windows/ToolsWindow"] -anchor_right = 1.0 -anchor_bottom = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="VertCtr" type="VBoxContainer" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr"] -margin_left = 12.0 -margin_top = 9.0 -margin_right = 192.0 -margin_bottom = 181.0 - -[node name="LargeCtr" type="HBoxContainer" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr"] -margin_right = 180.0 -margin_bottom = 42.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="TextureButton" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/LargeCtr"] -margin_right = 42.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 28 ) - -[node name="TextureButton2" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/LargeCtr"] -margin_left = 46.0 -margin_right = 88.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 26 ) -texture_pressed = ExtResource( 27 ) - -[node name="NuclearBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/LargeCtr"] -margin_left = 92.0 -margin_right = 134.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 23 ) -texture_pressed = ExtResource( 25 ) - -[node name="CoalBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/LargeCtr"] -margin_left = 138.0 -margin_right = 180.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 19 ) -texture_pressed = ExtResource( 18 ) - -[node name="SmallCtr" type="HBoxContainer" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr"] -margin_top = 46.0 -margin_right = 180.0 -margin_bottom = 80.0 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="PoliceBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/SmallCtr"] -margin_right = 34.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 29 ) -texture_pressed = ExtResource( 16 ) - -[node name="FireBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/SmallCtr"] -margin_left = 38.0 -margin_right = 72.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 33 ) -texture_pressed = ExtResource( 11 ) - -[node name="ParkBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/SmallCtr"] -margin_left = 76.0 -margin_right = 110.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 24 ) -texture_pressed = ExtResource( 22 ) - -[node name="ToolsCtr" type="HBoxContainer" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr"] -margin_top = 84.0 -margin_right = 180.0 -margin_bottom = 118.0 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="InfoBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/ToolsCtr"] -margin_right = 34.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 15 ) -texture_pressed = ExtResource( 14 ) - -[node name="BulldozeBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/ToolsCtr"] -margin_left = 38.0 -margin_right = 72.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 17 ) -texture_pressed = ExtResource( 31 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ZonesCtr" type="HBoxContainer" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr"] -margin_top = 122.0 -margin_right = 180.0 -margin_bottom = 172.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ResBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/ZonesCtr"] -margin_right = 34.0 -margin_bottom = 50.0 -texture_normal = ExtResource( 9 ) -texture_pressed = ExtResource( 10 ) - -[node name="ComBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/ZonesCtr"] -margin_left = 38.0 -margin_right = 72.0 -margin_bottom = 50.0 -texture_normal = ExtResource( 5 ) -texture_pressed = ExtResource( 30 ) - -[node name="IndBtn" type="TextureButton" parent="Controls/Control Panel/Windows/ToolsWindow/CenterCtr/VertCtr/ZonesCtr"] -margin_left = 76.0 -margin_right = 110.0 -margin_bottom = 50.0 -texture_normal = ExtResource( 13 ) -texture_pressed = ExtResource( 12 ) - -[node name="Credits" parent="Controls/Control Panel/Windows" instance=ExtResource( 34 )] -anchor_left = 0.393762 -anchor_top = 0.292636 -anchor_right = 0.605263 -anchor_bottom = 0.78876 - -[node name="PauseIndicator" type="TextureRect" parent="Controls/Control Panel/Windows"] -visible = false -anchor_right = 1.0 -anchor_bottom = 1.0 -texture = ExtResource( 39 ) -stretch_mode = 1 -__meta__ = { -"_edit_lock_": true, -"_edit_use_anchors_": false -} - -[node name="Ordinance" parent="Controls/Control Panel/Windows" instance=ExtResource( 44 )] - -[node name="VRMode" type="Button" parent="Controls/Control Panel/Windows"] -visible = false -anchor_left = 0.919922 -anchor_top = 0.0197812 -anchor_right = 0.989258 -anchor_bottom = 0.0664478 -text = "VR Mode" -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="NewsWindow" type="WindowDialog" parent="Controls/Control Panel/Windows"] -anchor_left = 0.0877193 -anchor_top = 0.234496 -anchor_right = 0.69883 -anchor_bottom = 0.591085 -window_title = "News" -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="News" type="ItemList" parent="Controls/Control Panel/Windows/NewsWindow"] -anchor_left = 0.00797449 -anchor_top = 0.0412844 -anchor_right = 0.992026 -anchor_bottom = 0.967889 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="VersionLbl" type="Label" parent="Controls/Control Panel/Windows"] -anchor_left = 0.0146199 -anchor_top = 0.0271318 -anchor_right = 0.182261 -anchor_bottom = 0.0542636 -text = "Version" -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="Status" type="Panel" parent="Controls/Control Panel"] -anchor_top = 12.95 -anchor_right = 25.65 -anchor_bottom = 15.25 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="SettingsBtn" type="Button" parent="Controls/Control Panel/Status"] -anchor_left = 0.0115391 -anchor_top = 0.0555202 -anchor_right = 0.0525548 -anchor_bottom = 0.533132 -hint_tooltip = "Meet" -size_flags_horizontal = 4 -icon = ExtResource( 35 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="StatCtr" type="HBoxContainer" parent="Controls/Control Panel/Status"] -anchor_left = 0.0566406 -anchor_top = 0.0750188 -anchor_right = 0.996094 -anchor_bottom = 0.516879 -custom_constants/separation = 50 -alignment = 1 -script = ExtResource( 38 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="ButtonCtr" type="HBoxContainer" parent="Controls/Control Panel/Status/StatCtr"] -margin_left = 233.0 -margin_right = 515.0 -margin_bottom = 40.0 -custom_constants/separation = 10 -alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="TaxBtn" type="Button" parent="Controls/Control Panel/Status/StatCtr/ButtonCtr"] -margin_right = 42.0 -margin_bottom = 40.0 -hint_tooltip = "RCI" -size_flags_horizontal = 4 -icon = ExtResource( 40 ) - -[node name="ToolsBtn" type="Button" parent="Controls/Control Panel/Status/StatCtr/ButtonCtr"] -margin_left = 52.0 -margin_right = 94.0 -margin_bottom = 40.0 -hint_tooltip = "Tools" -size_flags_horizontal = 4 -icon = ExtResource( 42 ) - -[node name="AdvsiorBtn" type="Button" parent="Controls/Control Panel/Status/StatCtr/ButtonCtr"] -margin_left = 104.0 -margin_right = 146.0 -margin_bottom = 40.0 -hint_tooltip = "Meet" -size_flags_horizontal = 4 -icon = ExtResource( 43 ) - -[node name="VSeparator" type="VSeparator" parent="Controls/Control Panel/Status/StatCtr/ButtonCtr"] -margin_left = 156.0 -margin_right = 160.0 -margin_bottom = 40.0 - -[node name="TurtleBtn" type="Button" parent="Controls/Control Panel/Status/StatCtr/ButtonCtr"] -margin_left = 170.0 -margin_right = 211.0 -margin_bottom = 40.0 -hint_tooltip = "Slow" -toggle_mode = true -icon = ExtResource( 8 ) - -[node name="CheetaBtn" type="Button" parent="Controls/Control Panel/Status/StatCtr/ButtonCtr"] -margin_left = 221.0 -margin_right = 268.0 -margin_bottom = 40.0 -hint_tooltip = "Fast" -toggle_mode = true -icon = ExtResource( 7 ) - -[node name="VSeparator2" type="VSeparator" parent="Controls/Control Panel/Status/StatCtr/ButtonCtr"] -margin_left = 278.0 -margin_right = 282.0 -margin_bottom = 40.0 - -[node name="NameDate" type="VBoxContainer" parent="Controls/Control Panel/Status/StatCtr"] -margin_left = 565.0 -margin_right = 653.0 -margin_bottom = 40.0 -alignment = 1 - -[node name="CityNameLbl" type="Label" parent="Controls/Control Panel/Status/StatCtr/NameDate"] -margin_top = 4.0 -margin_right = 88.0 -margin_bottom = 18.0 -text = "City Name" -align = 1 - -[node name="YearCtr" type="HBoxContainer" parent="Controls/Control Panel/Status/StatCtr/NameDate"] -margin_top = 22.0 -margin_right = 88.0 -margin_bottom = 36.0 - -[node name="CalIcon" type="TextureRect" parent="Controls/Control Panel/Status/StatCtr/NameDate/YearCtr"] -margin_right = 10.0 -margin_bottom = 14.0 -texture = ExtResource( 36 ) -stretch_mode = 4 - -[node name="CalendarLbl" type="Label" parent="Controls/Control Panel/Status/StatCtr/NameDate/YearCtr"] -margin_left = 14.0 -margin_right = 88.0 -margin_bottom = 14.0 -text = "01/01/2000" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="PopBudget" type="VBoxContainer" parent="Controls/Control Panel/Status/StatCtr"] -margin_left = 703.0 -margin_right = 729.0 -margin_bottom = 40.0 -alignment = 1 - -[node name="BudgetCtr" type="HBoxContainer" parent="Controls/Control Panel/Status/StatCtr/PopBudget"] -margin_top = 4.0 -margin_right = 26.0 -margin_bottom = 18.0 - -[node name="CoinsIcon" type="TextureRect" parent="Controls/Control Panel/Status/StatCtr/PopBudget/BudgetCtr"] -margin_right = 14.0 -margin_bottom = 14.0 -texture = ExtResource( 41 ) -stretch_mode = 4 - -[node name="BudgetLbl" type="Label" parent="Controls/Control Panel/Status/StatCtr/PopBudget/BudgetCtr"] -margin_left = 18.0 -margin_right = 26.0 -margin_bottom = 14.0 -text = "0" - -[node name="PopCtr" type="HBoxContainer" parent="Controls/Control Panel/Status/StatCtr/PopBudget"] -margin_top = 22.0 -margin_right = 26.0 -margin_bottom = 36.0 - -[node name="PopIcon" type="TextureRect" parent="Controls/Control Panel/Status/StatCtr/PopBudget/PopCtr"] -margin_right = 14.0 -margin_bottom = 14.0 -texture = ExtResource( 3 ) -stretch_mode = 4 - -[node name="PopLbl" type="Label" parent="Controls/Control Panel/Status/StatCtr/PopBudget/PopCtr"] -margin_left = 18.0 -margin_right = 26.0 -margin_bottom = 14.0 -text = "0" - -[node name="NewsBtn" type="Button" parent="Controls/Control Panel/Status"] -anchor_left = 0.0078125 -anchor_top = 0.633158 -anchor_right = 0.989258 -anchor_bottom = 0.888972 -text = "News" -flat = true -align = 0 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="Zone" parent="." instance=ExtResource( 49 )] -position = Vector2( 650, 351 ) - -[node name="PowerStation" parent="." instance=ExtResource( 47 )] -position = Vector2( 758, 277 ) +[node name="ItemSelect" parent="." instance=ExtResource("1_rtv6q")] diff --git a/scenes/item_select.tscn b/scenes/item_select.tscn new file mode 100644 index 0000000..c8f5acb --- /dev/null +++ b/scenes/item_select.tscn @@ -0,0 +1,38 @@ +[gd_scene format=3 uid="uid://bslfk5as420f7"] + +[node name="ItemSelect" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_vertical = 10 +metadata/_edit_use_anchors_ = true + +[node name="TabContainer" type="TabContainer" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_top = 0.830247 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 0 +metadata/_edit_use_anchors_ = true + +[node name="Zones" type="TabBar" parent="TabContainer"] +layout_mode = 2 + +[node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Zones"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Zones/ScrollContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/Zones/ScrollContainer/VBoxContainer"] +layout_mode = 2 diff --git a/scenes/license_gui.tscn b/scenes/license_gui.tscn new file mode 100644 index 0000000..fb95a59 --- /dev/null +++ b/scenes/license_gui.tscn @@ -0,0 +1,85 @@ +[gd_scene load_steps=3 format=3 uid="uid://82qi4wgni4ac"] + +[ext_resource type="Script" path="res://scripts/license_gui.gd" id="1_esldu"] +[ext_resource type="Script" path="res://addons/simplelicense/api/LicenseManager.gd" id="2_cpb2k"] + +[node name="LicenseGUI" type="Control"] +custom_minimum_size = Vector2(256, 256) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_esldu") +load_locations = Array[String](["res://licenses", "res://addons/simplelicense/mod_example/licenses/"]) +export_locations = Array[String](["user://licenses/game/", "user://licenses/mods/mod_1/"]) + +[node name="LicenseManager" type="Node" parent="."] +script = ExtResource("2_cpb2k") + +[node name="background" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Label" type="Label" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.381076 +anchor_right = 0.461806 +anchor_bottom = 0.0401235 +offset_left = 3.05176e-05 +grow_horizontal = 2 +text = "License Info" +metadata/_edit_use_anchors_ = true + +[node name="Tree" type="Tree" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.00694444 +anchor_top = 0.0462963 +anchor_right = 0.404514 +anchor_bottom = 0.987654 +grow_vertical = 2 +size_flags_horizontal = 2 +hide_root = true +metadata/_edit_use_anchors_ = true + +[node name="Text" type="TextEdit" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.434028 +anchor_top = 0.0462963 +anchor_right = 0.993056 +anchor_bottom = 0.987654 +offset_left = -8.0 +grow_horizontal = 0 +grow_vertical = 2 +size_flags_horizontal = 3 +editable = false +scroll_smooth = true +minimap_draw = true +metadata/_edit_use_anchors_ = true + +[node name="op_locations" type="OptionButton" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.00694444 +anchor_top = 0.00308642 +anchor_right = 0.172743 +anchor_bottom = 0.0416667 +theme_override_font_sizes/font_size = 12 +item_count = 2 +popup/item_0/text = "a" +popup/item_0/id = 0 +popup/item_1/text = "b" +popup/item_1/id = 1 +metadata/_edit_use_anchors_ = true + +[connection signal="item_activated" from="Tree" to="." method="_on_tree_item_activated"] +[connection signal="item_selected" from="Tree" to="." method="_on_tree_item_selected"] +[connection signal="item_selected" from="op_locations" to="." method="_on_op_locations_item_selected"] diff --git a/scenes/maps/MapOne.tscn b/scenes/maps/MapOne.tscn deleted file mode 100644 index 5975197..0000000 --- a/scenes/maps/MapOne.tscn +++ /dev/null @@ -1,30 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://assets/water.tres" type="TileSet" id=1] -[ext_resource path="res://scripts/camera_move.gd" type="Script" id=2] -[ext_resource path="res://assets/terrian.tres" type="TileSet" id=3] - -[node name="MapOne" type="Node2D"] -__meta__ = { -"_edit_lock_": true -} - -[node name="Terrian" type="TileMap" parent="."] -tile_set = ExtResource( 3 ) -cell_size = Vector2( 16, 16 ) -format = 1 -tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 21, 0, 0, 22, 0, 0, 23, 0, 0, 24, 0, 0, 25, 0, 0, 26, 0, 0, 27, 0, 0, 28, 0, 0, 29, 0, 0, 30, 0, 0, 31, 0, 0, 32, 0, 0, 33, 0, 0, 34, 0, 0, 35, 0, 0, 36, 0, 0, 37, 0, 0, 38, 0, 0, 39, 0, 0, 40, 0, 0, 41, 0, 0, 42, 0, 0, 43, 0, 0, 44, 0, 0, 45, 0, 0, 46, 0, 0, 47, 0, 0, 48, 0, 0, 49, 0, 0, 50, 0, 0, 51, 0, 0, 52, 0, 0, 53, 0, 0, 54, 0, 0, 55, 0, 0, 56, 0, 0, 57, 0, 0, 58, 0, 0, 59, 0, 0, 60, 0, 0, 61, 0, 0, 62, 0, 0, 63, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 65553, 0, 0, 65554, 0, 0, 65555, 0, 0, 65556, 0, 0, 65557, 0, 0, 65558, 0, 0, 65559, 0, 0, 65560, 0, 0, 65561, 0, 0, 65562, 0, 0, 65563, 0, 0, 65564, 0, 0, 65565, 0, 0, 65566, 0, 0, 65567, 0, 0, 65568, 0, 0, 65569, 0, 0, 65570, 0, 0, 65571, 0, 0, 65572, 0, 0, 65573, 0, 0, 65574, 0, 0, 65575, 0, 0, 65576, 0, 0, 65577, 0, 0, 65578, 0, 0, 65579, 0, 0, 65580, 0, 0, 65581, 0, 0, 65582, 0, 0, 65583, 0, 0, 65584, 0, 0, 65585, 0, 0, 65586, 0, 0, 65587, 0, 0, 65588, 0, 0, 65589, 0, 0, 65590, 0, 0, 65591, 0, 0, 65592, 0, 0, 65593, 0, 0, 65594, 0, 0, 65595, 0, 0, 65596, 0, 0, 65597, 0, 0, 65598, 0, 0, 65599, 0, 0, 131072, 0, 0, 131073, 0, 0, 131074, 0, 0, 131075, 0, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 131090, 0, 0, 131091, 0, 0, 131092, 0, 0, 131093, 0, 0, 131094, 0, 0, 131095, 0, 0, 131096, 0, 0, 131097, 0, 0, 131098, 0, 0, 131099, 0, 0, 131100, 0, 0, 131101, 0, 0, 131102, 0, 0, 131103, 0, 0, 131104, 0, 0, 131105, 0, 0, 131106, 0, 0, 131107, 0, 0, 131108, 0, 0, 131109, 0, 0, 131110, 0, 0, 131111, 0, 0, 131112, 0, 0, 131113, 0, 0, 131114, 0, 0, 131115, 0, 0, 131116, 0, 0, 131117, 0, 0, 131118, 0, 0, 131119, 0, 0, 131120, 0, 0, 131121, 0, 0, 131122, 0, 0, 131123, 0, 0, 131124, 0, 0, 131125, 0, 0, 131126, 0, 0, 131127, 0, 0, 131128, 0, 0, 131129, 0, 0, 131130, 0, 0, 131131, 0, 0, 131132, 0, 0, 131133, 0, 0, 131134, 0, 0, 131135, 0, 0, 196608, 0, 0, 196609, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 0, 196624, 0, 0, 196625, 0, 0, 196626, 0, 0, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 0, 0, 196631, 0, 0, 196632, 0, 0, 196633, 0, 0, 196634, 0, 0, 196635, 0, 0, 196636, 0, 0, 196637, 0, 0, 196638, 0, 0, 196639, 0, 0, 196640, 0, 0, 196641, 0, 0, 196642, 0, 0, 196643, 0, 0, 196644, 0, 0, 196645, 0, 0, 196646, 0, 0, 196647, 0, 0, 196648, 0, 0, 196649, 0, 0, 196650, 0, 0, 196651, 0, 0, 196652, 0, 0, 196653, 0, 0, 196654, 0, 0, 196655, 0, 0, 196656, 0, 0, 196657, 0, 0, 196658, 0, 0, 196659, 0, 0, 196660, 0, 0, 196661, 0, 0, 196662, 0, 0, 196663, 0, 0, 196664, 0, 0, 196665, 0, 0, 196666, 0, 0, 196667, 0, 0, 196668, 0, 0, 196669, 0, 0, 196670, 0, 0, 196671, 0, 0, 262144, 0, 0, 262145, 0, 0, 262146, 0, 0, 262147, 0, 0, 262148, 0, 0, 262149, 0, 0, 262150, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 0, 0, 262154, 0, 0, 262155, 0, 0, 262156, 0, 0, 262157, 0, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 262161, 0, 0, 262162, 0, 0, 262163, 0, 0, 262164, 0, 0, 262165, 0, 0, 262166, 0, 0, 262167, 0, 0, 262168, 0, 0, 262169, 0, 0, 262170, 0, 0, 262171, 0, 0, 262172, 0, 0, 262173, 0, 0, 262174, 0, 0, 262175, 0, 0, 262176, 0, 0, 262177, 0, 0, 262178, 0, 0, 262179, 0, 0, 262180, 0, 0, 262181, 0, 0, 262182, 0, 0, 262183, 0, 0, 262184, 0, 0, 262185, 0, 0, 262186, 0, 0, 262187, 0, 0, 262188, 0, 0, 262189, 0, 0, 262190, 0, 0, 262191, 0, 0, 262192, 0, 0, 262193, 0, 0, 262194, 0, 0, 262195, 0, 0, 262196, 0, 0, 262197, 0, 0, 262198, 0, 0, 262199, 0, 0, 262200, 0, 0, 262201, 0, 0, 262202, 0, 0, 262203, 0, 0, 262204, 0, 0, 262205, 0, 0, 262206, 0, 0, 262207, 0, 0, 327680, 0, 0, 327681, 0, 0, 327682, 0, 0, 327683, 0, 0, 327684, 0, 0, 327685, 0, 0, 327686, 0, 0, 327687, 0, 0, 327688, 0, 0, 327689, 0, 0, 327690, 0, 0, 327691, 0, 0, 327692, 0, 0, 327693, 0, 0, 327694, 0, 0, 327695, 0, 0, 327696, 0, 0, 327697, 0, 0, 327698, 0, 0, 327699, 0, 0, 327700, 0, 0, 327701, 0, 0, 327702, 0, 0, 327703, 0, 0, 327704, 0, 0, 327705, 0, 0, 327706, 0, 0, 327707, 0, 0, 327708, 0, 0, 327709, 0, 0, 327710, 0, 0, 327711, 0, 0, 327712, 0, 0, 327713, 0, 0, 327714, 0, 0, 327715, 0, 0, 327716, 0, 0, 327717, 0, 0, 327718, 0, 0, 327719, 0, 0, 327720, 0, 0, 327721, 0, 0, 327722, 0, 0, 327723, 0, 0, 327724, 0, 0, 327725, 0, 0, 327726, 0, 0, 327727, 0, 0, 327728, 0, 0, 327729, 0, 0, 327730, 0, 0, 327731, 0, 0, 327732, 0, 0, 327733, 0, 0, 327734, 0, 0, 327735, 0, 0, 327736, 0, 0, 327737, 0, 0, 327738, 0, 0, 327739, 0, 0, 327740, 0, 0, 327741, 0, 0, 327742, 0, 0, 327743, 0, 0, 393216, 0, 0, 393217, 0, 0, 393218, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393222, 0, 0, 393223, 0, 0, 393224, 0, 0, 393225, 0, 0, 393226, 0, 0, 393227, 0, 0, 393228, 0, 0, 393229, 0, 0, 393230, 0, 0, 393231, 0, 0, 393232, 0, 0, 393233, 0, 0, 393234, 0, 0, 393235, 0, 0, 393236, 0, 0, 393237, 0, 0, 393238, 0, 0, 393239, 0, 0, 393240, 0, 0, 393241, 0, 0, 393242, 0, 0, 393243, 0, 0, 393244, 0, 0, 393245, 0, 0, 393246, 0, 0, 393247, 0, 0, 393248, 0, 0, 393249, 0, 0, 393250, 0, 0, 393251, 0, 0, 393252, 0, 0, 393253, 0, 0, 393254, 0, 0, 393255, 0, 0, 393256, 0, 0, 393257, 0, 0, 393258, 0, 0, 393259, 0, 0, 393260, 0, 0, 393261, 0, 0, 393262, 0, 0, 393263, 0, 0, 393264, 0, 0, 393265, 0, 0, 393266, 0, 0, 393267, 0, 0, 393268, 0, 0, 393269, 0, 0, 393270, 0, 0, 393271, 0, 0, 393272, 0, 0, 393273, 0, 0, 393274, 0, 0, 393275, 0, 0, 393276, 0, 0, 393277, 0, 0, 393278, 0, 0, 393279, 0, 0, 458752, 0, 0, 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 0, 0, 458763, 0, 0, 458764, 0, 0, 458765, 0, 0, 458766, 0, 0, 458767, 0, 0, 458768, 0, 0, 458769, 0, 0, 458770, 0, 0, 458771, 0, 0, 458772, 0, 0, 458773, 0, 0, 458774, 0, 0, 458775, 0, 0, 458776, 0, 0, 458777, 0, 0, 458778, 0, 0, 458779, 0, 0, 458780, 0, 0, 458781, 0, 0, 458782, 0, 0, 458783, 0, 0, 458784, 0, 0, 458785, 0, 0, 458786, 0, 0, 458787, 0, 0, 458788, 0, 0, 458789, 0, 0, 458790, 0, 0, 458791, 0, 0, 458792, 0, 0, 458793, 0, 0, 458794, 0, 0, 458795, 0, 0, 458796, 0, 0, 458797, 0, 0, 458798, 0, 0, 458799, 0, 0, 458800, 0, 0, 458801, 0, 0, 458802, 0, 0, 458803, 0, 0, 458804, 0, 0, 458805, 0, 0, 458806, 0, 0, 458807, 0, 0, 458808, 0, 0, 458809, 0, 0, 458810, 0, 0, 458811, 0, 0, 458812, 0, 0, 458813, 0, 0, 458814, 0, 0, 458815, 0, 0, 524288, 0, 0, 524289, 0, 0, 524290, 0, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524297, 0, 0, 524298, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, 0, 0, 524302, 0, 0, 524303, 0, 0, 524304, 0, 0, 524305, 0, 0, 524306, 0, 0, 524307, 0, 0, 524308, 0, 0, 524309, 0, 0, 524310, 0, 0, 524311, 0, 0, 524312, 0, 0, 524313, 0, 0, 524314, 0, 0, 524315, 0, 0, 524316, 0, 0, 524317, 0, 0, 524318, 0, 0, 524319, 0, 0, 524320, 0, 0, 524321, 0, 0, 524322, 0, 0, 524323, 0, 0, 524324, 0, 0, 524325, 0, 0, 524326, 0, 0, 524327, 0, 0, 524328, 0, 0, 524329, 0, 0, 524330, 0, 0, 524331, 0, 0, 524332, 0, 0, 524333, 0, 0, 524334, 0, 0, 524335, 0, 0, 524336, 0, 0, 524337, 0, 0, 524338, 0, 0, 524339, 0, 0, 524340, 0, 0, 524341, 0, 0, 524342, 0, 0, 524343, 0, 0, 524344, 0, 0, 524345, 0, 0, 524346, 0, 0, 524347, 0, 0, 524348, 0, 0, 524349, 0, 0, 524350, 0, 0, 524351, 0, 0, 589824, 0, 0, 589825, 0, 0, 589826, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589835, 0, 0, 589836, 0, 0, 589837, 0, 0, 589838, 0, 0, 589839, 0, 0, 589840, 0, 0, 589841, 0, 0, 589842, 0, 0, 589843, 0, 0, 589844, 0, 0, 589845, 0, 0, 589846, 0, 0, 589847, 0, 0, 589848, 0, 0, 589849, 0, 0, 589850, 0, 0, 589851, 0, 0, 589852, 0, 0, 589853, 0, 0, 589854, 0, 0, 589855, 0, 0, 589856, 0, 0, 589857, 0, 0, 589858, 0, 0, 589859, 0, 0, 589860, 0, 0, 589861, 0, 0, 589862, 0, 0, 589863, 0, 0, 589864, 0, 0, 589865, 0, 0, 589866, 0, 0, 589867, 0, 0, 589868, 0, 0, 589869, 0, 0, 589870, 0, 0, 589871, 0, 0, 589872, 0, 0, 589873, 0, 0, 589874, 0, 0, 589875, 0, 0, 589876, 0, 0, 589877, 0, 0, 589878, 0, 0, 589879, 0, 0, 589880, 0, 0, 589881, 0, 0, 589882, 0, 0, 589883, 0, 0, 589884, 0, 0, 589885, 0, 0, 589886, 0, 0, 589887, 0, 0, 655360, 0, 0, 655361, 0, 0, 655362, 0, 0, 655363, 0, 0, 655364, 0, 0, 655365, 0, 0, 655366, 0, 0, 655367, 0, 0, 655368, 0, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 0, 0, 655373, 0, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0, 655379, 0, 0, 655380, 0, 0, 655381, 0, 0, 655382, 0, 0, 655383, 0, 0, 655384, 0, 0, 655385, 0, 0, 655386, 0, 0, 655387, 0, 0, 655388, 0, 0, 655389, 0, 0, 655390, 0, 0, 655391, 0, 0, 655392, 0, 0, 655393, 0, 0, 655394, 0, 0, 655395, 0, 0, 655396, 0, 0, 655397, 0, 0, 655398, 0, 0, 655399, 0, 0, 655400, 0, 0, 655401, 0, 0, 655402, 0, 0, 655403, 0, 0, 655404, 0, 0, 655405, 0, 0, 655406, 0, 0, 655407, 0, 0, 655408, 0, 0, 655409, 0, 0, 655410, 0, 0, 655411, 0, 0, 655412, 0, 0, 655413, 0, 0, 655414, 0, 0, 655415, 0, 0, 655416, 0, 0, 655417, 0, 0, 655418, 0, 0, 655419, 0, 0, 655420, 0, 0, 655421, 0, 0, 655422, 0, 0, 655423, 0, 0, 720896, 0, 0, 720897, 0, 0, 720898, 0, 0, 720899, 0, 0, 720900, 0, 0, 720901, 0, 0, 720902, 0, 0, 720903, 0, 0, 720904, 0, 0, 720905, 0, 0, 720906, 0, 0, 720907, 0, 0, 720908, 0, 0, 720909, 0, 0, 720910, 0, 0, 720911, 0, 0, 720912, 0, 0, 720913, 0, 0, 720914, 0, 0, 720915, 0, 0, 720916, 0, 0, 720917, 0, 0, 720918, 0, 0, 720919, 0, 0, 720920, 0, 0, 720921, 0, 0, 720922, 0, 0, 720923, 0, 0, 720924, 0, 0, 720925, 0, 0, 720926, 0, 0, 720927, 0, 0, 720928, 0, 0, 720929, 0, 0, 720930, 0, 0, 720931, 0, 0, 720932, 0, 0, 720933, 0, 0, 720934, 0, 0, 720935, 0, 0, 720936, 0, 0, 720937, 0, 0, 720938, 0, 0, 720939, 0, 0, 720940, 0, 0, 720941, 0, 0, 720942, 0, 0, 720943, 0, 0, 720944, 0, 0, 720945, 0, 0, 720946, 0, 0, 720947, 0, 0, 720948, 0, 0, 720949, 0, 0, 720950, 0, 0, 720951, 0, 0, 720952, 0, 0, 720953, 0, 0, 720954, 0, 0, 720955, 0, 0, 720956, 0, 0, 720957, 0, 0, 720958, 0, 0, 720959, 0, 0, 786432, 0, 0, 786433, 0, 0, 786434, 0, 0, 786435, 0, 0, 786436, 0, 0, 786437, 0, 0, 786438, 0, 0, 786439, 0, 0, 786440, 0, 0, 786441, 0, 0, 786442, 0, 0, 786443, 0, 0, 786444, 0, 0, 786445, 0, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 0, 0, 786450, 0, 0, 786451, 0, 0, 786452, 0, 0, 786453, 0, 0, 786454, 0, 0, 786455, 0, 0, 786456, 0, 0, 786457, 0, 0, 786458, 0, 0, 786459, 0, 0, 786460, 0, 0, 786461, 0, 0, 786462, 0, 0, 786463, 0, 0, 786464, 0, 0, 786465, 0, 0, 786466, 0, 0, 786467, 0, 0, 786468, 0, 0, 786469, 0, 0, 786470, 0, 0, 786471, 0, 0, 786472, 0, 0, 786473, 0, 0, 786474, 0, 0, 786475, 0, 0, 786476, 0, 0, 786477, 0, 0, 786478, 0, 0, 786479, 0, 0, 786480, 0, 0, 786481, 0, 0, 786482, 0, 0, 786483, 0, 0, 786484, 0, 0, 786485, 0, 0, 786486, 0, 0, 786487, 0, 0, 786488, 0, 0, 786489, 0, 0, 786490, 0, 0, 786491, 0, 0, 786492, 0, 0, 786493, 0, 0, 786494, 0, 0, 786495, 0, 0, 851968, 0, 0, 851969, 0, 0, 851970, 0, 0, 851971, 0, 0, 851972, 0, 0, 851973, 0, 0, 851974, 0, 0, 851975, 0, 0, 851976, 0, 0, 851977, 0, 0, 851978, 0, 0, 851979, 0, 0, 851980, 0, 0, 851981, 0, 0, 851982, 0, 0, 851983, 0, 0, 851984, 0, 0, 851985, 0, 0, 851986, 0, 0, 851987, 0, 0, 851988, 0, 0, 851989, 0, 0, 851990, 0, 0, 851991, 0, 0, 851992, 0, 0, 851993, 0, 0, 851994, 0, 0, 851995, 0, 0, 851996, 0, 0, 851997, 0, 0, 851998, 0, 0, 851999, 0, 0, 852000, 0, 0, 852001, 0, 0, 852002, 0, 0, 852003, 0, 0, 852004, 0, 0, 852005, 0, 0, 852006, 0, 0, 852007, 0, 0, 852008, 0, 0, 852009, 0, 0, 852010, 0, 0, 852011, 0, 0, 852012, 0, 0, 852013, 0, 0, 852014, 0, 0, 852015, 0, 0, 852016, 0, 0, 852017, 0, 0, 852018, 0, 0, 852019, 0, 0, 852020, 0, 0, 852021, 0, 0, 852022, 0, 0, 852023, 0, 0, 852024, 0, 0, 852025, 0, 0, 852026, 0, 0, 852027, 0, 0, 852028, 0, 0, 852029, 0, 0, 852030, 0, 0, 852031, 0, 0, 917504, 0, 0, 917505, 0, 0, 917506, 0, 0, 917507, 0, 0, 917508, 0, 0, 917509, 0, 0, 917510, 0, 0, 917511, 0, 0, 917512, 0, 0, 917513, 0, 0, 917514, 0, 0, 917515, 0, 0, 917516, 0, 0, 917517, 0, 0, 917518, 0, 0, 917519, 0, 0, 917520, 0, 0, 917521, 0, 0, 917522, 0, 0, 917523, 0, 0, 917524, 0, 0, 917525, 0, 0, 917526, 0, 0, 917527, 0, 0, 917528, 0, 0, 917529, 0, 0, 917530, 0, 0, 917531, 0, 0, 917532, 0, 0, 917533, 0, 0, 917534, 0, 0, 917535, 0, 0, 917536, 0, 0, 917537, 0, 0, 917538, 0, 0, 917539, 0, 0, 917540, 0, 0, 917541, 0, 0, 917542, 0, 0, 917543, 0, 0, 917544, 0, 0, 917545, 0, 0, 917546, 0, 0, 917547, 0, 0, 917548, 0, 0, 917549, 0, 0, 917550, 0, 0, 917551, 0, 0, 917552, 0, 0, 917553, 0, 0, 917554, 0, 0, 917555, 0, 0, 917556, 0, 0, 917557, 0, 0, 917558, 0, 0, 917559, 0, 0, 917560, 0, 0, 917561, 0, 0, 917562, 0, 0, 917563, 0, 0, 917564, 0, 0, 917565, 0, 0, 917566, 0, 0, 917567, 0, 0, 983040, 0, 0, 983041, 0, 0, 983042, 0, 0, 983043, 0, 0, 983044, 0, 0, 983045, 0, 0, 983046, 0, 0, 983047, 0, 0, 983048, 0, 0, 983049, 0, 0, 983050, 0, 0, 983051, 0, 0, 983052, 0, 0, 983053, 0, 0, 983054, 0, 0, 983055, 0, 0, 983056, 0, 0, 983057, 0, 0, 983058, 0, 0, 983059, 0, 0, 983060, 0, 0, 983061, 0, 0, 983062, 0, 0, 983063, 0, 0, 983064, 0, 0, 983065, 0, 0, 983066, 0, 0, 983067, 0, 0, 983068, 0, 0, 983069, 0, 0, 983070, 0, 0, 983071, 0, 0, 983072, 0, 0, 983073, 0, 0, 983074, 0, 0, 983075, 0, 0, 983076, 0, 0, 983077, 0, 0, 983078, 0, 0, 983079, 0, 0, 983080, 0, 0, 983081, 0, 0, 983082, 0, 0, 983083, 0, 0, 983084, 0, 0, 983085, 0, 0, 983086, 0, 0, 983087, 0, 0, 983088, 0, 0, 983089, 0, 0, 983090, 0, 0, 983091, 0, 0, 983092, 0, 0, 983093, 0, 0, 983094, 0, 0, 983095, 0, 0, 983096, 0, 0, 983097, 0, 0, 983098, 0, 0, 983099, 0, 0, 983100, 0, 0, 983101, 0, 0, 983102, 0, 0, 983103, 0, 0, 1048576, 0, 0, 1048577, 0, 0, 1048578, 0, 0, 1048579, 0, 0, 1048580, 0, 0, 1048581, 0, 0, 1048582, 0, 0, 1048583, 0, 0, 1048584, 0, 0, 1048585, 0, 0, 1048586, 0, 0, 1048587, 0, 0, 1048588, 0, 0, 1048589, 0, 0, 1048590, 0, 0, 1048591, 0, 0, 1048592, 0, 0, 1048593, 0, 0, 1048594, 0, 0, 1048595, 0, 0, 1048596, 0, 0, 1048597, 0, 0, 1048598, 0, 0, 1048599, 0, 0, 1048600, 0, 0, 1048601, 0, 0, 1048602, 0, 0, 1048603, 0, 0, 1048604, 0, 0, 1048605, 0, 0, 1048606, 0, 0, 1048607, 0, 0, 1048608, 0, 0, 1048609, 0, 0, 1048610, 0, 0, 1048611, 0, 0, 1048612, 0, 0, 1048613, 0, 0, 1048614, 0, 0, 1048615, 0, 0, 1048616, 0, 0, 1048617, 0, 0, 1048618, 0, 0, 1048619, 0, 0, 1048620, 0, 0, 1048621, 0, 0, 1048622, 0, 0, 1048623, 0, 0, 1048624, 0, 0, 1048625, 0, 0, 1048626, 0, 0, 1048627, 0, 0, 1048628, 0, 0, 1048629, 0, 0, 1048630, 0, 0, 1048631, 0, 0, 1048632, 0, 0, 1048633, 0, 0, 1048634, 0, 0, 1048635, 0, 0, 1048636, 0, 0, 1048637, 0, 0, 1048638, 0, 0, 1048639, 0, 0, 1114112, 0, 0, 1114113, 0, 0, 1114114, 0, 0, 1114115, 0, 0, 1114116, 0, 0, 1114117, 0, 0, 1114118, 0, 0, 1114119, 0, 0, 1114120, 0, 0, 1114121, 0, 0, 1114122, 0, 0, 1114123, 0, 0, 1114124, 0, 0, 1114125, 0, 0, 1114126, 0, 0, 1114127, 0, 0, 1114128, 0, 0, 1114129, 0, 0, 1114130, 0, 0, 1114131, 0, 0, 1114132, 0, 0, 1114133, 0, 0, 1114134, 0, 0, 1114135, 0, 0, 1114136, 0, 0, 1114137, 0, 0, 1114138, 0, 0, 1114139, 0, 0, 1114140, 0, 0, 1114141, 0, 0, 1114142, 0, 0, 1114143, 0, 0, 1114144, 0, 0, 1114145, 0, 0, 1114146, 0, 0, 1114147, 0, 0, 1114148, 0, 0, 1114149, 0, 0, 1114150, 0, 0, 1114151, 0, 0, 1114152, 0, 0, 1114153, 0, 0, 1114154, 0, 0, 1114155, 0, 0, 1114156, 0, 0, 1114157, 0, 0, 1114158, 0, 0, 1114159, 0, 0, 1114160, 0, 0, 1114161, 0, 0, 1114162, 0, 0, 1114163, 0, 0, 1114164, 0, 0, 1114165, 0, 0, 1114166, 0, 0, 1114167, 0, 0, 1114168, 0, 0, 1114169, 0, 0, 1114170, 0, 0, 1114171, 0, 0, 1114172, 0, 0, 1114173, 0, 0, 1114174, 0, 0, 1114175, 0, 0, 1179648, 0, 0, 1179649, 0, 0, 1179650, 0, 0, 1179651, 0, 0, 1179652, 0, 0, 1179653, 0, 0, 1179654, 0, 0, 1179655, 0, 0, 1179656, 0, 0, 1179657, 0, 0, 1179658, 0, 0, 1179659, 0, 0, 1179660, 0, 0, 1179661, 0, 0, 1179662, 0, 0, 1179663, 0, 0, 1179664, 0, 0, 1179665, 0, 0, 1179666, 0, 0, 1179667, 0, 0, 1179668, 0, 0, 1179669, 0, 0, 1179670, 0, 0, 1179671, 0, 0, 1179672, 0, 0, 1179673, 0, 0, 1179674, 0, 0, 1179675, 0, 0, 1179676, 0, 0, 1179677, 0, 0, 1179678, 0, 0, 1179679, 0, 0, 1179680, 0, 0, 1179681, 0, 0, 1179682, 0, 0, 1179683, 0, 0, 1179684, 0, 0, 1179685, 0, 0, 1179686, 0, 0, 1179687, 0, 0, 1179688, 0, 0, 1179689, 0, 0, 1179690, 0, 0, 1179691, 0, 0, 1179692, 0, 0, 1179693, 0, 0, 1179694, 0, 0, 1179695, 0, 0, 1179696, 0, 0, 1179697, 0, 0, 1179698, 0, 0, 1179699, 0, 0, 1179700, 0, 0, 1179701, 0, 0, 1179702, 0, 0, 1179703, 0, 0, 1179704, 0, 0, 1179705, 0, 0, 1179706, 0, 0, 1179707, 0, 0, 1179708, 0, 0, 1179709, 0, 0, 1179710, 0, 0, 1179711, 0, 0, 1245184, 0, 0, 1245185, 0, 0, 1245186, 0, 0, 1245187, 0, 0, 1245188, 0, 0, 1245189, 0, 0, 1245190, 0, 0, 1245191, 0, 0, 1245192, 0, 0, 1245193, 0, 0, 1245194, 0, 0, 1245195, 0, 0, 1245196, 0, 0, 1245197, 0, 0, 1245198, 0, 0, 1245199, 0, 0, 1245200, 0, 0, 1245201, 0, 0, 1245202, 0, 0, 1245203, 0, 0, 1245204, 0, 0, 1245205, 0, 0, 1245206, 0, 0, 1245207, 0, 0, 1245208, 0, 0, 1245209, 0, 0, 1245210, 0, 0, 1245211, 0, 0, 1245212, 0, 0, 1245213, 0, 0, 1245214, 0, 0, 1245215, 0, 0, 1245216, 0, 0, 1245217, 0, 0, 1245218, 0, 0, 1245219, 0, 0, 1245220, 0, 0, 1245221, 0, 0, 1245222, 0, 0, 1245223, 0, 0, 1245224, 0, 0, 1245225, 0, 0, 1245226, 0, 0, 1245227, 0, 0, 1245228, 0, 0, 1245229, 0, 0, 1245230, 0, 0, 1245231, 0, 0, 1245232, 0, 0, 1245233, 0, 0, 1245234, 0, 0, 1245235, 0, 0, 1245236, 0, 0, 1245237, 0, 0, 1245238, 0, 0, 1245239, 0, 0, 1245240, 0, 0, 1245241, 0, 0, 1245242, 0, 0, 1245243, 0, 0, 1245244, 0, 0, 1245245, 0, 0, 1245246, 0, 0, 1245247, 0, 0, 1310720, 0, 0, 1310721, 0, 0, 1310722, 0, 0, 1310723, 0, 0, 1310724, 0, 0, 1310725, 0, 0, 1310726, 0, 0, 1310727, 0, 0, 1310728, 0, 0, 1310729, 0, 0, 1310730, 0, 0, 1310731, 0, 0, 1310732, 0, 0, 1310733, 0, 0, 1310734, 0, 0, 1310735, 0, 0, 1310736, 0, 0, 1310737, 0, 0, 1310738, 0, 0, 1310739, 0, 0, 1310740, 0, 0, 1310741, 0, 0, 1310742, 0, 0, 1310743, 0, 0, 1310744, 0, 0, 1310745, 0, 0, 1310746, 0, 0, 1310747, 0, 0, 1310748, 0, 0, 1310749, 0, 0, 1310750, 0, 0, 1310751, 0, 0, 1310752, 0, 0, 1310753, 0, 0, 1310754, 0, 0, 1310755, 0, 0, 1310756, 0, 0, 1310757, 0, 0, 1310758, 0, 0, 1310759, 0, 0, 1310760, 0, 0, 1310761, 0, 0, 1310762, 0, 0, 1310763, 0, 0, 1310764, 0, 0, 1310765, 0, 0, 1310766, 0, 0, 1310767, 0, 0, 1310768, 0, 0, 1310769, 0, 0, 1310770, 0, 0, 1310771, 0, 0, 1310772, 0, 0, 1310773, 0, 0, 1310774, 0, 0, 1310775, 0, 0, 1310776, 0, 0, 1310777, 0, 0, 1310778, 0, 0, 1310779, 0, 0, 1310780, 0, 0, 1310781, 0, 0, 1310782, 0, 0, 1310783, 0, 0, 1376256, 0, 0, 1376257, 0, 0, 1376258, 0, 0, 1376259, 0, 0, 1376260, 0, 0, 1376261, 0, 0, 1376262, 0, 0, 1376263, 0, 0, 1376264, 0, 0, 1376265, 0, 0, 1376266, 0, 0, 1376267, 0, 0, 1376268, 0, 0, 1376269, 0, 0, 1376270, 0, 0, 1376271, 0, 0, 1376272, 0, 0, 1376273, 0, 0, 1376274, 0, 0, 1376275, 0, 0, 1376276, 0, 0, 1376277, 0, 0, 1376278, 0, 0, 1376279, 0, 0, 1376280, 0, 0, 1376281, 0, 0, 1376282, 0, 0, 1376283, 0, 0, 1376284, 0, 0, 1376285, 0, 0, 1376286, 0, 0, 1376287, 0, 0, 1376288, 0, 0, 1376289, 0, 0, 1376290, 0, 0, 1376291, 0, 0, 1376292, 0, 0, 1376293, 0, 0, 1376294, 0, 0, 1376295, 0, 0, 1376296, 0, 0, 1376297, 0, 0, 1376298, 0, 0, 1376299, 0, 0, 1376300, 0, 0, 1376301, 0, 0, 1376302, 0, 0, 1376303, 0, 0, 1376304, 0, 0, 1376305, 0, 0, 1376306, 0, 0, 1376307, 0, 0, 1376308, 0, 0, 1376309, 0, 0, 1376310, 0, 0, 1376311, 0, 0, 1376312, 0, 0, 1376313, 0, 0, 1376314, 0, 0, 1376315, 0, 0, 1376316, 0, 0, 1376317, 0, 0, 1376318, 0, 0, 1376319, 0, 0, 1441792, 0, 0, 1441793, 0, 0, 1441794, 0, 0, 1441795, 0, 0, 1441796, 0, 0, 1441797, 0, 0, 1441798, 0, 0, 1441799, 0, 0, 1441800, 0, 0, 1441801, 0, 0, 1441802, 0, 0, 1441803, 0, 0, 1441804, 0, 0, 1441805, 0, 0, 1441806, 0, 0, 1441807, 0, 0, 1441808, 0, 0, 1441809, 0, 0, 1441810, 0, 0, 1441811, 0, 0, 1441812, 0, 0, 1441813, 0, 0, 1441814, 0, 0, 1441815, 0, 0, 1441816, 0, 0, 1441817, 0, 0, 1441818, 0, 0, 1441819, 0, 0, 1441820, 0, 0, 1441821, 0, 0, 1441822, 0, 0, 1441823, 0, 0, 1441824, 0, 0, 1441825, 0, 0, 1441826, 0, 0, 1441827, 0, 0, 1441828, 0, 0, 1441829, 0, 0, 1441830, 0, 0, 1441831, 0, 0, 1441832, 0, 0, 1441833, 0, 0, 1441834, 0, 0, 1441835, 0, 0, 1441836, 0, 0, 1441837, 0, 0, 1441838, 0, 0, 1441839, 0, 0, 1441840, 0, 0, 1441841, 0, 0, 1441842, 0, 0, 1441843, 0, 0, 1441844, 0, 0, 1441845, 0, 0, 1441846, 0, 0, 1441847, 0, 0, 1441848, 0, 0, 1441849, 0, 0, 1441850, 0, 0, 1441851, 0, 0, 1441852, 0, 0, 1441853, 0, 0, 1441854, 0, 0, 1441855, 0, 0, 1507328, 0, 0, 1507329, 0, 0, 1507330, 0, 0, 1507331, 0, 0, 1507332, 0, 0, 1507333, 0, 0, 1507334, 0, 0, 1507335, 0, 0, 1507336, 0, 0, 1507337, 0, 0, 1507338, 0, 0, 1507339, 0, 0, 1507340, 0, 0, 1507341, 0, 0, 1507342, 0, 0, 1507343, 0, 0, 1507344, 0, 0, 1507345, 0, 0, 1507346, 0, 0, 1507347, 0, 0, 1507348, 0, 0, 1507349, 0, 0, 1507350, 0, 0, 1507351, 0, 0, 1507352, 0, 0, 1507353, 0, 0, 1507354, 0, 0, 1507355, 0, 0, 1507356, 0, 0, 1507357, 0, 0, 1507358, 0, 0, 1507359, 0, 0, 1507360, 0, 0, 1507361, 0, 0, 1507362, 0, 0, 1507363, 0, 0, 1507364, 0, 0, 1507365, 0, 0, 1507366, 0, 0, 1507367, 0, 0, 1507368, 0, 0, 1507369, 0, 0, 1507370, 0, 0, 1507371, 0, 0, 1507372, 0, 0, 1507373, 0, 0, 1507374, 0, 0, 1507375, 0, 0, 1507376, 0, 0, 1507377, 0, 0, 1507378, 0, 0, 1507379, 0, 0, 1507380, 0, 0, 1507381, 0, 0, 1507382, 0, 0, 1507383, 0, 0, 1507384, 0, 0, 1507385, 0, 0, 1507386, 0, 0, 1507387, 0, 0, 1507388, 0, 0, 1507389, 0, 0, 1507390, 0, 0, 1507391, 0, 0, 1572864, 0, 0, 1572865, 0, 0, 1572866, 0, 0, 1572867, 0, 0, 1572868, 0, 0, 1572869, 0, 0, 1572870, 0, 0, 1572871, 0, 0, 1572872, 0, 0, 1572873, 0, 0, 1572874, 0, 0, 1572875, 0, 0, 1572876, 0, 0, 1572877, 0, 0, 1572878, 0, 0, 1572879, 0, 0, 1572880, 0, 0, 1572881, 0, 0, 1572882, 0, 0, 1572883, 0, 0, 1572884, 0, 0, 1572885, 0, 0, 1572886, 0, 0, 1572887, 0, 0, 1572888, 0, 0, 1572889, 0, 0, 1572890, 0, 0, 1572891, 0, 0, 1572892, 0, 0, 1572893, 0, 0, 1572894, 0, 0, 1572895, 0, 0, 1572896, 0, 0, 1572897, 0, 0, 1572898, 0, 0, 1572899, 0, 0, 1572900, 0, 0, 1572901, 0, 0, 1572902, 0, 0, 1572903, 0, 0, 1572904, 0, 0, 1572905, 0, 0, 1572906, 0, 0, 1572907, 0, 0, 1572908, 0, 0, 1572909, 0, 0, 1572910, 0, 0, 1572911, 0, 0, 1572912, 0, 0, 1572913, 0, 0, 1572914, 0, 0, 1572915, 0, 0, 1572916, 0, 0, 1572917, 0, 0, 1572918, 0, 0, 1572919, 0, 0, 1572920, 0, 0, 1572921, 0, 0, 1572922, 0, 0, 1572923, 0, 0, 1572924, 0, 0, 1572925, 0, 0, 1572926, 0, 0, 1572927, 0, 0, 1638400, 0, 0, 1638401, 0, 0, 1638402, 0, 0, 1638403, 0, 0, 1638404, 0, 0, 1638405, 0, 0, 1638406, 0, 0, 1638407, 0, 0, 1638408, 0, 0, 1638409, 0, 0, 1638410, 0, 0, 1638411, 0, 0, 1638412, 0, 0, 1638413, 0, 0, 1638414, 0, 0, 1638415, 0, 0, 1638416, 0, 0, 1638417, 0, 0, 1638418, 0, 0, 1638419, 0, 0, 1638420, 0, 0, 1638421, 0, 0, 1638422, 0, 0, 1638423, 0, 0, 1638424, 0, 0, 1638425, 0, 0, 1638426, 0, 0, 1638427, 0, 0, 1638428, 0, 0, 1638429, 0, 0, 1638430, 0, 0, 1638431, 0, 0, 1638432, 0, 0, 1638433, 0, 0, 1638434, 0, 0, 1638435, 0, 0, 1638436, 0, 0, 1638437, 0, 0, 1638438, 0, 0, 1638439, 0, 0, 1638440, 0, 0, 1638441, 0, 0, 1638442, 0, 0, 1638443, 0, 0, 1638444, 0, 0, 1638445, 0, 0, 1638446, 0, 0, 1638447, 0, 0, 1638448, 0, 0, 1638449, 0, 0, 1638450, 0, 0, 1638451, 0, 0, 1638452, 0, 0, 1638453, 0, 0, 1638454, 0, 0, 1638455, 0, 0, 1638456, 0, 0, 1638457, 0, 0, 1638458, 0, 0, 1638459, 0, 0, 1638460, 0, 0, 1638461, 0, 0, 1638462, 0, 0, 1638463, 0, 0, 1703936, 0, 0, 1703937, 0, 0, 1703938, 0, 0, 1703939, 0, 0, 1703940, 0, 0, 1703941, 0, 0, 1703942, 0, 0, 1703943, 0, 0, 1703944, 0, 0, 1703945, 0, 0, 1703946, 0, 0, 1703947, 0, 0, 1703948, 0, 0, 1703949, 0, 0, 1703950, 0, 0, 1703951, 0, 0, 1703952, 0, 0, 1703953, 0, 0, 1703954, 0, 0, 1703955, 0, 0, 1703956, 0, 0, 1703957, 0, 0, 1703958, 0, 0, 1703959, 0, 0, 1703960, 0, 0, 1703961, 0, 0, 1703962, 0, 0, 1703963, 0, 0, 1703964, 0, 0, 1703965, 0, 0, 1703966, 0, 0, 1703967, 0, 0, 1703968, 0, 0, 1703969, 0, 0, 1703970, 0, 0, 1703971, 0, 0, 1703972, 0, 0, 1703973, 0, 0, 1703974, 0, 0, 1703975, 0, 0, 1703976, 0, 0, 1703977, 0, 0, 1703978, 0, 0, 1703979, 0, 0, 1703980, 0, 0, 1703981, 0, 0, 1703982, 0, 0, 1703983, 0, 0, 1703984, 0, 0, 1703985, 0, 0, 1703986, 0, 0, 1703987, 0, 0, 1703988, 0, 0, 1703989, 0, 0, 1703990, 0, 0, 1703991, 0, 0, 1703992, 0, 0, 1703993, 0, 0, 1703994, 0, 0, 1703995, 0, 0, 1703996, 0, 0, 1703997, 0, 0, 1703998, 0, 0, 1703999, 0, 0, 1769472, 0, 0, 1769473, 0, 0, 1769474, 0, 0, 1769475, 0, 0, 1769476, 0, 0, 1769477, 0, 0, 1769478, 0, 0, 1769479, 0, 0, 1769480, 0, 0, 1769481, 0, 0, 1769482, 0, 0, 1769483, 0, 0, 1769484, 0, 0, 1769485, 0, 0, 1769486, 0, 0, 1769487, 0, 0, 1769488, 0, 0, 1769489, 0, 0, 1769490, 0, 0, 1769491, 0, 0, 1769492, 0, 0, 1769493, 0, 0, 1769494, 0, 0, 1769495, 0, 0, 1769496, 0, 0, 1769497, 0, 0, 1769498, 0, 0, 1769499, 0, 0, 1769500, 0, 0, 1769501, 0, 0, 1769502, 0, 0, 1769503, 0, 0, 1769504, 0, 0, 1769505, 0, 0, 1769506, 0, 0, 1769507, 0, 0, 1769508, 0, 0, 1769509, 0, 0, 1769510, 0, 0, 1769511, 0, 0, 1769512, 0, 0, 1769513, 0, 0, 1769514, 0, 0, 1769515, 0, 0, 1769516, 0, 0, 1769517, 0, 0, 1769518, 0, 0, 1769519, 0, 0, 1769520, 0, 0, 1769521, 0, 0, 1769522, 0, 0, 1769523, 0, 0, 1769524, 0, 0, 1769525, 0, 0, 1769526, 0, 0, 1769527, 0, 0, 1769528, 0, 0, 1769529, 0, 0, 1769530, 0, 0, 1769531, 0, 0, 1769532, 0, 0, 1769533, 0, 0, 1769534, 0, 0, 1769535, 0, 0, 1835008, 0, 0, 1835009, 0, 0, 1835010, 0, 0, 1835011, 0, 0, 1835012, 0, 0, 1835013, 0, 0, 1835014, 0, 0, 1835015, 0, 0, 1835016, 0, 0, 1835017, 0, 0, 1835018, 0, 0, 1835019, 0, 0, 1835020, 0, 0, 1835021, 0, 0, 1835022, 0, 0, 1835023, 0, 0, 1835024, 0, 0, 1835025, 0, 0, 1835026, 0, 0, 1835027, 0, 0, 1835028, 0, 0, 1835029, 0, 0, 1835030, 0, 0, 1835031, 0, 0, 1835032, 0, 0, 1835033, 0, 0, 1835034, 0, 0, 1835035, 0, 0, 1835036, 0, 0, 1835037, 0, 0, 1835038, 0, 0, 1835039, 0, 0, 1835040, 0, 0, 1835041, 0, 0, 1835042, 0, 0, 1835043, 0, 0, 1835044, 0, 0, 1835045, 0, 0, 1835046, 0, 0, 1835047, 0, 0, 1835048, 0, 0, 1835049, 0, 0, 1835050, 0, 0, 1835051, 0, 0, 1835052, 0, 0, 1835053, 0, 0, 1835054, 0, 0, 1835055, 0, 0, 1835056, 0, 0, 1835057, 0, 0, 1835058, 0, 0, 1835059, 0, 0, 1835060, 0, 0, 1835061, 0, 0, 1835062, 0, 0, 1835063, 0, 0, 1835064, 0, 0, 1835065, 0, 0, 1835066, 0, 0, 1835067, 0, 0, 1835068, 0, 0, 1835069, 0, 0, 1835070, 0, 0, 1835071, 0, 0, 1900544, 0, 0, 1900545, 0, 0, 1900546, 0, 0, 1900547, 0, 0, 1900548, 0, 0, 1900549, 0, 0, 1900550, 0, 0, 1900551, 0, 0, 1900552, 0, 0, 1900553, 0, 0, 1900554, 0, 0, 1900555, 0, 0, 1900556, 0, 0, 1900557, 0, 0, 1900558, 0, 0, 1900559, 0, 0, 1900560, 0, 0, 1900561, 0, 0, 1900562, 0, 0, 1900563, 0, 0, 1900564, 0, 0, 1900565, 0, 0, 1900566, 0, 0, 1900567, 0, 0, 1900568, 0, 0, 1900569, 0, 0, 1900570, 0, 0, 1900571, 0, 0, 1900572, 0, 0, 1900573, 0, 0, 1900574, 0, 0, 1900575, 0, 0, 1900576, 0, 0, 1900577, 0, 0, 1900578, 0, 0, 1900579, 0, 0, 1900580, 0, 0, 1900581, 0, 0, 1900582, 0, 0, 1900583, 0, 0, 1900584, 0, 0, 1900585, 0, 0, 1900586, 0, 0, 1900587, 0, 0, 1900588, 0, 0, 1900589, 0, 0, 1900590, 0, 0, 1900591, 0, 0, 1900592, 0, 0, 1900593, 0, 0, 1900594, 0, 0, 1900595, 0, 0, 1900596, 0, 0, 1900597, 0, 0, 1900598, 0, 0, 1900599, 0, 0, 1900600, 0, 0, 1900601, 0, 0, 1900602, 0, 0, 1900603, 0, 0, 1900604, 0, 0, 1900605, 0, 0, 1900606, 0, 0, 1900607, 0, 0, 1966080, 0, 0, 1966081, 0, 0, 1966082, 0, 0, 1966083, 0, 0, 1966084, 0, 0, 1966085, 0, 0, 1966086, 0, 0, 1966087, 0, 0, 1966088, 0, 0, 1966089, 0, 0, 1966090, 0, 0, 1966091, 0, 0, 1966092, 0, 0, 1966093, 0, 0, 1966094, 0, 0, 1966095, 0, 0, 1966096, 0, 0, 1966097, 0, 0, 1966098, 0, 0, 1966099, 0, 0, 1966100, 0, 0, 1966101, 0, 0, 1966102, 0, 0, 1966103, 0, 0, 1966104, 0, 0, 1966105, 0, 0, 1966106, 0, 0, 1966107, 0, 0, 1966108, 0, 0, 1966109, 0, 0, 1966110, 0, 0, 1966111, 0, 0, 1966112, 0, 0, 1966113, 0, 0, 1966114, 0, 0, 1966115, 0, 0, 1966116, 0, 0, 1966117, 0, 0, 1966118, 0, 0, 1966119, 0, 0, 1966120, 0, 0, 1966121, 0, 0, 1966122, 0, 0, 1966123, 0, 0, 1966124, 0, 0, 1966125, 0, 0, 1966126, 0, 0, 1966127, 0, 0, 1966128, 0, 0, 1966129, 0, 0, 1966130, 0, 0, 1966131, 0, 0, 1966132, 0, 0, 1966133, 0, 0, 1966134, 0, 0, 1966135, 0, 0, 1966136, 0, 0, 1966137, 0, 0, 1966138, 0, 0, 1966139, 0, 0, 1966140, 0, 0, 1966141, 0, 0, 1966142, 0, 0, 1966143, 0, 0, 2031616, 0, 0, 2031617, 0, 0, 2031618, 0, 0, 2031619, 0, 0, 2031620, 0, 0, 2031621, 0, 0, 2031622, 0, 0, 2031623, 0, 0, 2031624, 0, 0, 2031625, 0, 0, 2031626, 0, 0, 2031627, 0, 0, 2031628, 0, 0, 2031629, 0, 0, 2031630, 0, 0, 2031631, 0, 0, 2031632, 0, 0, 2031633, 0, 0, 2031634, 0, 0, 2031635, 0, 0, 2031636, 0, 0, 2031637, 0, 0, 2031638, 0, 0, 2031639, 0, 0, 2031640, 0, 0, 2031641, 0, 0, 2031642, 0, 0, 2031643, 0, 0, 2031644, 0, 0, 2031645, 0, 0, 2031646, 0, 0, 2031647, 0, 0, 2031648, 0, 0, 2031649, 0, 0, 2031650, 0, 0, 2031651, 0, 0, 2031652, 0, 0, 2031653, 0, 0, 2031654, 0, 0, 2031655, 0, 0, 2031656, 0, 0, 2031657, 0, 0, 2031658, 0, 0, 2031659, 0, 0, 2031660, 0, 0, 2031661, 0, 0, 2031662, 0, 0, 2031663, 0, 0, 2031664, 0, 0, 2031665, 0, 0, 2031666, 0, 0, 2031667, 0, 0, 2031668, 0, 0, 2031669, 0, 0, 2031670, 0, 0, 2031671, 0, 0, 2031672, 0, 0, 2031673, 0, 0, 2031674, 0, 0, 2031675, 0, 0, 2031676, 0, 0, 2031677, 0, 0, 2031678, 0, 0, 2031679, 0, 0, 2097152, 0, 0, 2097153, 0, 0, 2097154, 0, 0, 2097155, 0, 0, 2097156, 0, 0, 2097157, 0, 0, 2097158, 0, 0, 2097159, 0, 0, 2097160, 0, 0, 2097161, 0, 0, 2097162, 0, 0, 2097163, 0, 0, 2097164, 0, 0, 2097165, 0, 0, 2097166, 0, 0, 2097167, 0, 0, 2097168, 0, 0, 2097169, 0, 0, 2097170, 0, 0, 2097171, 0, 0, 2097172, 0, 0, 2097173, 0, 0, 2097174, 0, 0, 2097175, 0, 0, 2097176, 0, 0, 2097177, 0, 0, 2097178, 0, 0, 2097179, 0, 0, 2097180, 0, 0, 2097181, 0, 0, 2097182, 0, 0, 2097183, 0, 0, 2097184, 0, 0, 2097185, 0, 0, 2097186, 0, 0, 2097187, 0, 0, 2097188, 0, 0, 2097189, 0, 0, 2097190, 0, 0, 2097191, 0, 0, 2097192, 0, 0, 2097193, 0, 0, 2097194, 0, 0, 2097195, 0, 0, 2097196, 0, 0, 2097197, 0, 0, 2097198, 0, 0, 2097199, 0, 0, 2097200, 0, 0, 2097201, 0, 0, 2097202, 0, 0, 2097203, 0, 0, 2097204, 0, 0, 2097205, 0, 0, 2097206, 0, 0, 2097207, 0, 0, 2097208, 0, 0, 2097209, 0, 0, 2097210, 0, 0, 2097211, 0, 0, 2097212, 0, 0, 2097213, 0, 0, 2097214, 0, 0, 2097215, 0, 0, 2162688, 0, 0, 2162689, 0, 0, 2162690, 0, 0, 2162691, 0, 0, 2162692, 0, 0, 2162693, 0, 0, 2162694, 0, 0, 2162695, 0, 0, 2162696, 0, 0, 2162697, 0, 0, 2162698, 0, 0, 2162699, 0, 0, 2162700, 0, 0, 2162701, 0, 0, 2162702, 0, 0, 2162703, 0, 0, 2162704, 0, 0, 2162705, 0, 0, 2162706, 0, 0, 2162707, 0, 0, 2162708, 0, 0, 2162709, 0, 0, 2162710, 0, 0, 2162711, 0, 0, 2162712, 0, 0, 2162713, 0, 0, 2162714, 0, 0, 2162715, 0, 0, 2162716, 0, 0, 2162717, 0, 0, 2162718, 0, 0, 2162719, 0, 0, 2162720, 0, 0, 2162721, 0, 0, 2162722, 0, 0, 2162723, 0, 0, 2162724, 0, 0, 2162725, 0, 0, 2162726, 0, 0, 2162727, 0, 0, 2162728, 0, 0, 2162729, 0, 0, 2162730, 0, 0, 2162731, 0, 0, 2162732, 0, 0, 2162733, 0, 0, 2162734, 0, 0, 2162735, 0, 0, 2162736, 0, 0, 2162737, 0, 0, 2162738, 0, 0, 2162739, 0, 0, 2162740, 0, 0, 2162741, 0, 0, 2162742, 0, 0, 2162743, 0, 0, 2162744, 0, 0, 2162745, 0, 0, 2162746, 0, 0, 2162747, 0, 0, 2162748, 0, 0, 2162749, 0, 0, 2162750, 0, 0, 2162751, 0, 0, 2228224, 0, 0, 2228225, 0, 0, 2228226, 0, 0, 2228227, 0, 0, 2228228, 0, 0, 2228229, 0, 0, 2228230, 0, 0, 2228231, 0, 0, 2228232, 0, 0, 2228233, 0, 0, 2228234, 0, 0, 2228235, 0, 0, 2228236, 0, 0, 2228237, 0, 0, 2228238, 0, 0, 2228239, 0, 0, 2228240, 0, 0, 2228241, 0, 0, 2228242, 0, 0, 2228243, 0, 0, 2228244, 0, 0, 2228245, 0, 0, 2228246, 0, 0, 2228247, 0, 0, 2228248, 0, 0, 2228249, 0, 0, 2228250, 0, 0, 2228251, 0, 0, 2228252, 0, 0, 2228253, 0, 0, 2228254, 0, 0, 2228255, 0, 0, 2228256, 0, 0, 2228257, 0, 0, 2228258, 0, 0, 2228259, 0, 0, 2228260, 0, 0, 2228261, 0, 0, 2228262, 0, 0, 2228263, 0, 0, 2228264, 0, 0, 2228265, 0, 0, 2228266, 0, 0, 2228267, 0, 0, 2228268, 0, 0, 2228269, 0, 0, 2228270, 0, 0, 2228271, 0, 0, 2228272, 0, 0, 2228273, 0, 0, 2228274, 0, 0, 2228275, 0, 0, 2228276, 0, 0, 2228277, 0, 0, 2228278, 0, 0, 2228279, 0, 0, 2228280, 0, 0, 2228281, 0, 0, 2228282, 0, 0, 2228283, 0, 0, 2228284, 0, 0, 2228285, 0, 0, 2228286, 0, 0, 2228287, 0, 0, 2293760, 0, 0, 2293761, 0, 0, 2293762, 0, 0, 2293763, 0, 0, 2293764, 0, 0, 2293765, 0, 0, 2293766, 0, 0, 2293767, 0, 0, 2293768, 0, 0, 2293769, 0, 0, 2293770, 0, 0, 2293771, 0, 0, 2293772, 0, 0, 2293773, 0, 0, 2293774, 0, 0, 2293775, 0, 0, 2293776, 0, 0, 2293777, 0, 0, 2293778, 0, 0, 2293779, 0, 0, 2293780, 0, 0, 2293781, 0, 0, 2293782, 0, 0, 2293783, 0, 0, 2293784, 0, 0, 2293785, 0, 0, 2293786, 0, 0, 2293787, 0, 0, 2293788, 0, 0, 2293789, 0, 0, 2293790, 0, 0, 2293791, 0, 0, 2293792, 0, 0, 2293793, 0, 0, 2293794, 0, 0, 2293795, 0, 0, 2293796, 0, 0, 2293797, 0, 0, 2293798, 0, 0, 2293799, 0, 0, 2293800, 0, 0, 2293801, 0, 0, 2293802, 0, 0, 2293803, 0, 0, 2293804, 0, 0, 2293805, 0, 0, 2293806, 0, 0, 2293807, 0, 0, 2293808, 0, 0, 2293809, 0, 0, 2293810, 0, 0, 2293811, 0, 0, 2293812, 0, 0, 2293813, 0, 0, 2293814, 0, 0, 2293815, 0, 0, 2293816, 0, 0, 2293817, 0, 0, 2293818, 0, 0, 2293819, 0, 0, 2293820, 0, 0, 2293821, 0, 0, 2293822, 0, 0, 2293823, 0, 0, 2359296, 0, 0, 2359297, 0, 0, 2359298, 0, 0, 2359299, 0, 0, 2359300, 0, 0, 2359301, 0, 0, 2359302, 0, 0, 2359303, 0, 0, 2359304, 0, 0, 2359305, 0, 0, 2359306, 0, 0, 2359307, 0, 0, 2359308, 0, 0, 2359309, 0, 0, 2359310, 0, 0, 2359311, 0, 0, 2359312, 0, 0, 2359313, 0, 0, 2359314, 0, 0, 2359315, 0, 0, 2359316, 0, 0, 2359317, 0, 0, 2359318, 0, 0, 2359319, 0, 0, 2359320, 0, 0, 2359321, 0, 0, 2359322, 0, 0, 2359323, 0, 0, 2359324, 0, 0, 2359325, 0, 0, 2359326, 0, 0, 2359327, 0, 0, 2359328, 0, 0, 2359329, 0, 0, 2359330, 0, 0, 2359331, 0, 0, 2359332, 0, 0, 2359333, 0, 0, 2359334, 0, 0, 2359335, 0, 0, 2359336, 0, 0, 2359337, 0, 0, 2359338, 0, 0, 2359339, 0, 0, 2359340, 0, 0, 2359341, 0, 0, 2359342, 0, 0, 2359343, 0, 0, 2359344, 0, 0, 2359345, 0, 0, 2359346, 0, 0, 2359347, 0, 0, 2359348, 0, 0, 2359349, 0, 0, 2359350, 0, 0, 2359351, 0, 0, 2359352, 0, 0, 2359353, 0, 0, 2359354, 0, 0, 2359355, 0, 0, 2359356, 0, 0, 2359357, 0, 0, 2359358, 0, 0, 2359359, 0, 0, 2424832, 0, 0, 2424833, 0, 0, 2424834, 0, 0, 2424835, 0, 0, 2424836, 0, 0, 2424837, 0, 0, 2424838, 0, 0, 2424839, 0, 0, 2424840, 0, 0, 2424841, 0, 0, 2424842, 0, 0, 2424843, 0, 0, 2424844, 0, 0, 2424845, 0, 0, 2424846, 0, 0, 2424847, 0, 0, 2424848, 0, 0, 2424849, 0, 0, 2424850, 0, 0, 2424851, 0, 0, 2424852, 0, 0, 2424853, 0, 0, 2424854, 0, 0, 2424855, 0, 0, 2424856, 0, 0, 2424857, 0, 0, 2424858, 0, 0, 2424859, 0, 0, 2424860, 0, 0, 2424861, 0, 0, 2424862, 0, 0, 2424863, 0, 0, 2424864, 0, 0, 2424865, 0, 0, 2424866, 0, 0, 2424867, 0, 0, 2424868, 0, 0, 2424869, 0, 0, 2424870, 0, 0, 2424871, 0, 0, 2424872, 0, 0, 2424873, 0, 0, 2424874, 0, 0, 2424875, 0, 0, 2424876, 0, 0, 2424877, 0, 0, 2424878, 0, 0, 2424879, 0, 0, 2424880, 0, 0, 2424881, 0, 0, 2424882, 0, 0, 2424883, 0, 0, 2424884, 0, 0, 2424885, 0, 0, 2424886, 0, 0, 2424887, 0, 0, 2424888, 0, 0, 2424889, 0, 0, 2424890, 0, 0, 2424891, 0, 0, 2424892, 0, 0, 2424893, 0, 0, 2424894, 0, 0, 2424895, 0, 0, 2490388, 0, 0, 2490389, 0, 0, 2490390, 0, 0, 2490391, 0, 0, 2490392, 0, 0, 2490393, 0, 0, 2490394, 0, 0, 2490395, 0, 0, 2490396, 0, 0, 2490397, 0, 0, 2490398, 0, 0, 2490399, 0, 0, 2490400, 0, 0, 2490401, 0, 0, 2490402, 0, 0, 2490403, 0, 0, 2490431, 0, 0 ) -__meta__ = { -"_edit_lock_": true -} - -[node name="Water" type="TileMap" parent="."] -tile_set = ExtResource( 1 ) -cell_size = Vector2( 16, 16 ) -format = 1 -tile_data = PoolIntArray( 60, 0, 0, 61, 0, 0, 62, 0, 0, 63, 0, 0, 65596, 0, 0, 65597, 0, 131072, 65598, 0, 0, 65599, 0, 0, 131132, 0, 0, 131133, 0, 0, 131134, 0, 131072, 131135, 0, 0, 196668, 0, 0, 196669, 0, 65536, 196670, 0, 65536, 196671, 0, 0, 262204, 0, 0, 262205, 0, 0, 262206, 0, 0, 262207, 0, 0, 327740, 0, 0, 327741, 0, 131072, 327742, 0, 0, 327743, 0, 0, 393276, 0, 0, 393277, 0, 131072, 393278, 0, 131072, 393279, 0, 0, 458812, 0, 0, 458813, 0, 0, 458814, 0, 0, 458815, 0, 0, 524348, 0, 0, 524349, 0, 65536, 524350, 0, 0, 524351, 0, 0, 589884, 0, 0, 589885, 0, 0, 589886, 0, 65536, 589887, 0, 0, 655420, 0, 0, 655421, 0, 131072, 655422, 0, 0, 655423, 0, 0, 720956, 0, 0, 720957, 0, 0, 720958, 0, 131072, 720959, 0, 0, 786492, 0, 0, 786493, 0, 0, 786494, 0, 131072, 786495, 0, 0, 852028, 0, 0, 852029, 0, 65536, 852030, 0, 65536, 852031, 0, 0, 917564, 0, 0, 917565, 0, 65536, 917566, 0, 131072, 917567, 0, 0, 983100, 0, 0, 983101, 0, 131072, 983102, 0, 65536, 983103, 0, 0, 1048636, 0, 0, 1048637, 0, 131072, 1048638, 0, 0, 1048639, 0, 0, 1114172, 0, 0, 1114173, 0, 0, 1114174, 0, 131072, 1114175, 0, 0, 1179708, 0, 0, 1179709, 0, 0, 1179710, 0, 0, 1179711, 0, 0, 1245244, 0, 0, 1245245, 0, 131072, 1245246, 0, 0, 1245247, 0, 0, 1310780, 0, 0, 1310781, 0, 65536, 1310782, 0, 131072, 1310783, 0, 0, 1376316, 0, 0, 1376317, 0, 0, 1376318, 0, 131072, 1376319, 0, 0, 1441852, 0, 0, 1441853, 0, 0, 1441854, 0, 0, 1441855, 0, 0, 1507388, 0, 0, 1507389, 0, 65536, 1507390, 0, 131072, 1507391, 0, 0, 1572924, 0, 0, 1572925, 0, 131072, 1572926, 0, 131072, 1572927, 0, 0, 1638460, 0, 0, 1638461, 0, 131072, 1638462, 0, 65536, 1638463, 0, 0, 1703996, 0, 0, 1703997, 0, 0, 1703998, 0, 65536, 1703999, 0, 0, 1769532, 0, 0, 1769533, 0, 65536, 1769534, 0, 0, 1769535, 0, 0, 1835068, 0, 0, 1835069, 0, 0, 1835070, 0, 0, 1835071, 0, 0, 1900604, 0, 0, 1900605, 0, 0, 1900606, 0, 131072, 1900607, 0, 0, 1966140, 0, 0, 1966141, 0, 0, 1966142, 0, 131072, 1966143, 0, 0, 2031676, 0, 0, 2031677, 0, 65536, 2031678, 0, 65536, 2031679, 0, 0, 2097212, 0, 0, 2097213, 0, 0, 2097214, 0, 131072, 2097215, 0, 0, 2162748, 0, 0, 2162749, 0, 0, 2162750, 0, 131072, 2162751, 0, 0, 2228284, 0, 0, 2228285, 0, 131072, 2228286, 0, 65536, 2228287, 0, 0, 2293820, 0, 0, 2293821, 0, 65536, 2293822, 0, 0, 2293823, 0, 0, 2359356, 0, 0, 2359357, 0, 0, 2359358, 0, 0, 2359359, 0, 0, 2424892, 0, 0, 2424893, 0, 0, 2424894, 0, 0, 2424895, 0, 0, 2490428, 0, 0, 2490429, 0, 0 ) - -[node name="Camera2D" type="Camera2D" parent="."] -position = Vector2( 512, 304 ) -current = true -script = ExtResource( 2 ) diff --git a/scenes/windows/3d/Status3D.tscn b/scenes/windows/3d/Status3D.tscn deleted file mode 100644 index 11e85dc..0000000 --- a/scenes/windows/3d/Status3D.tscn +++ /dev/null @@ -1,45 +0,0 @@ -[gd_scene load_steps=7 format=2] - -[ext_resource path="res://scripts/window3d.gd" type="Script" id=1] -[ext_resource path="res://scenes/windows/Status.tscn" type="PackedScene" id=2] - -[sub_resource type="QuadMesh" id=1] - -[sub_resource type="ViewportTexture" id=2] -viewport_path = NodePath("Viewport") - -[sub_resource type="SpatialMaterial" id=3] -resource_local_to_scene = true -flags_transparent = true -flags_unshaded = true -flags_albedo_tex_force_srgb = true -albedo_texture = SubResource( 2 ) - -[sub_resource type="BoxShape" id=4] -extents = Vector3( 0.237843, 0.217798, 0.109503 ) - -[node name="Status3D" type="Spatial"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 0.839162, 0, 0, 0 ) -script = ExtResource( 1 ) - -[node name="Viewport" type="Viewport" parent="."] -arvr = true -hdr = false -usage = 0 -render_target_v_flip = true -render_target_update_mode = 3 - -[node name="Status" parent="Viewport" instance=ExtResource( 2 )] -margin_top = 912.175 -margin_bottom = 912.175 - -[node name="Quad" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) -material/0 = SubResource( 3 ) - -[node name="Area" type="Area" parent="Quad"] -transform = Transform( 3.11254, 0, 0, 0, 2.91295, 0, 0, 0, 1, 0, 0, 0 ) -collision_layer = 2 - -[node name="CollisionShape" type="CollisionShape" parent="Quad/Area"] -shape = SubResource( 4 ) diff --git a/scenes/windows/Advisor.tscn b/scenes/windows/Advisor.tscn deleted file mode 100644 index ea07f46..0000000 --- a/scenes/windows/Advisor.tscn +++ /dev/null @@ -1,49 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://scripts/advisor_window.gd" type="Script" id=1] - -[node name="Advisor" type="AcceptDialog"] -anchor_left = 0.293945 -anchor_top = 0.303333 -anchor_right = 0.706055 -anchor_bottom = 0.696667 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="Container" type="HSplitContainer" parent="."] -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 8.0 -margin_top = 8.0 -margin_right = -8.0 -margin_bottom = -36.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Advisor" type="VBoxContainer" parent="Container"] -margin_right = 100.0 -margin_bottom = 192.0 - -[node name="Avatar" type="TextureRect" parent="Container/Advisor"] -margin_right = 100.0 -rect_min_size = Vector2( 100, 0 ) - -[node name="RankLbl" type="Label" parent="Container/Advisor"] -margin_top = 4.0 -margin_right = 100.0 -margin_bottom = 18.0 -align = 1 - -[node name="NameLbl" type="Label" parent="Container/Advisor"] -margin_top = 22.0 -margin_right = 100.0 -margin_bottom = 36.0 -align = 1 - -[node name="DescriptionLbl" type="RichTextLabel" parent="Container"] -margin_left = 112.0 -margin_right = 406.001 -margin_bottom = 192.0 diff --git a/scenes/windows/Credits.tscn b/scenes/windows/Credits.tscn deleted file mode 100644 index 48e27f1..0000000 --- a/scenes/windows/Credits.tscn +++ /dev/null @@ -1,51 +0,0 @@ -[gd_scene format=2] - -[node name="Credits" type="WindowDialog"] -anchor_left = 0.394043 -anchor_top = 0.293333 -anchor_right = 0.605957 -anchor_bottom = 0.706667 -window_title = "Credits" -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="RichText" type="RichTextLabel" parent="."] -anchor_right = 1.0 -anchor_bottom = 1.0 -bbcode_enabled = true -bbcode_text = "[center] -Developed by -Tony Bark - -Sprites by -Maxis - -Icons by -Font Awesome - -Powered by -Godot Engine - -Inspired by -SimCity -[/center]" -text = " -Developed by -Tony Bark - -Sprites by -Maxis - -Icons by -Font Awesome - -Powered by -Godot Engine - -Inspired by -SimCity -" -__meta__ = { -"_edit_use_anchors_": false -} diff --git a/scenes/windows/DebugConsole.tscn b/scenes/windows/DebugConsole.tscn deleted file mode 100644 index 205795c..0000000 --- a/scenes/windows/DebugConsole.tscn +++ /dev/null @@ -1,60 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://scripts/debug_console.gd" type="Script" id=1] -[ext_resource path="res://scripts/command_handler.gd" type="Script" id=2] - -[node name="DebugConsole" type="WindowDialog"] -pause_mode = 2 -anchor_left = 0.302734 -anchor_top = 0.365833 -anchor_right = 0.697266 -anchor_bottom = 0.634167 -margin_right = -4.0 -margin_bottom = -1.0 -window_title = "Console" -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="CommandHandler" type="Node" parent="."] -script = ExtResource( 2 ) - -[node name="Output" type="TextEdit" parent="."] -anchor_left = 0.0148515 -anchor_top = 0.0372671 -anchor_right = 0.987624 -anchor_bottom = 0.751553 -readonly = true -wrap_enabled = true -__meta__ = { -"_edit_lock_": true, -"_edit_use_anchors_": true -} - -[node name="Input" type="LineEdit" parent="."] -anchor_left = 0.0173267 -anchor_top = 0.801242 -anchor_right = 0.80198 -anchor_bottom = 0.950311 -caret_blink = true -caret_blink_speed = 0.5 -__meta__ = { -"_edit_lock_": true, -"_edit_use_anchors_": true -} - -[node name="SubmitBtn" type="Button" parent="."] -anchor_left = 0.824257 -anchor_top = 0.796624 -anchor_right = 0.985148 -anchor_bottom = 0.951903 -margin_top = 7.62939e-06 -text = "Submit" -__meta__ = { -"_edit_lock_": true, -"_edit_use_anchors_": true -} - -[connection signal="text_entered" from="Input" to="." method="_on_Input_text_entered"] -[connection signal="pressed" from="SubmitBtn" to="." method="_on_SubmitBtn_pressed"] diff --git a/scenes/windows/Meet.tscn b/scenes/windows/Meet.tscn deleted file mode 100644 index 9f79bf2..0000000 --- a/scenes/windows/Meet.tscn +++ /dev/null @@ -1,63 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://assets/avatars/cindy.png" type="Texture" id=1] -[ext_resource path="res://assets/avatars/kit.png" type="Texture" id=2] -[ext_resource path="res://assets/avatars/zc.png" type="Texture" id=3] - -[node name="AdvisorMeet" type="WindowDialog"] -anchor_left = 0.328125 -anchor_top = 0.301667 -anchor_right = 0.722656 -anchor_bottom = 0.763333 -window_title = "Meet" -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="Advsiors" type="HBoxContainer" parent="."] -anchor_left = -0.00161441 -anchor_top = -0.00235459 -anchor_right = 0.998386 -anchor_bottom = -0.00235459 -margin_top = 4.0 -margin_bottom = 104.0 -alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="CityPlannerBtn" type="TextureButton" parent="Advsiors"] -margin_left = 47.0 -margin_right = 147.0 -margin_bottom = 100.0 -texture_normal = ExtResource( 1 ) - -[node name="FinanceBtn" type="TextureButton" parent="Advsiors"] -margin_left = 151.0 -margin_right = 251.0 -margin_bottom = 100.0 -texture_normal = ExtResource( 2 ) - -[node name="TransportBtn" type="TextureButton" parent="Advsiors"] -margin_left = 255.0 -margin_right = 355.0 -margin_bottom = 100.0 -texture_normal = ExtResource( 3 ) - -[node name="Tree" type="Tree" parent="."] -anchor_left = 0.0148515 -anchor_top = 0.411552 -anchor_right = 0.987624 -anchor_bottom = 0.978339 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="HSeparator" type="HSeparator" parent="."] -anchor_left = 0.0170455 -anchor_top = 0.380995 -anchor_right = 0.985795 -anchor_bottom = 0.397731 -__meta__ = { -"_edit_use_anchors_": true -} diff --git a/scenes/windows/Ordinance.tscn b/scenes/windows/Ordinance.tscn deleted file mode 100644 index 799b968..0000000 --- a/scenes/windows/Ordinance.tscn +++ /dev/null @@ -1,127 +0,0 @@ -[gd_scene load_steps=5 format=2] - -[ext_resource path="res://assets/symbols/fontawesome/thumbs-down.svg" type="Texture" id=1] -[ext_resource path="res://assets/symbols/fontawesome/thumbs-up.svg" type="Texture" id=2] -[ext_resource path="res://assets/symbols/fontawesome/question-circle.svg" type="Texture" id=3] -[ext_resource path="res://scripts/policy_window.gd" type="Script" id=4] - -[node name="Ordinance" type="WindowDialog"] -anchor_left = 0.324707 -anchor_top = 0.238333 -anchor_right = 0.675293 -anchor_bottom = 0.761667 -window_title = "Ordinance" -script = ExtResource( 4 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="OrdinanceLbl" type="Label" parent="."] -anchor_left = 0.0222841 -anchor_top = 0.022293 -anchor_right = 0.97493 -anchor_bottom = 0.0700637 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="ActionCtr" type="VBoxContainer" parent="."] -anchor_left = 0.0278552 -anchor_top = 0.729299 -anchor_right = 0.245125 -anchor_bottom = 0.977707 -custom_constants/separation = 5 -__meta__ = { -"_edit_lock_": true, -"_edit_use_anchors_": true -} - -[node name="TakeActionLbl" type="Label" parent="ActionCtr"] -margin_right = 78.0 -margin_bottom = 14.0 -text = "Take Action:" - -[node name="EnectCtr" type="HBoxContainer" parent="ActionCtr"] -margin_top = 19.0 -margin_right = 78.0 -margin_bottom = 39.0 -custom_constants/separation = 10 - -[node name="EnectBtn" type="Button" parent="ActionCtr/EnectCtr"] -margin_right = 22.0 -margin_bottom = 20.0 -icon = ExtResource( 2 ) - -[node name="EnectLbl" type="Label" parent="ActionCtr/EnectCtr"] -margin_left = 32.0 -margin_top = 3.0 -margin_right = 66.0 -margin_bottom = 17.0 -text = "Enact" - -[node name="IgnoreCtr" type="HBoxContainer" parent="ActionCtr"] -margin_top = 44.0 -margin_right = 78.0 -margin_bottom = 64.0 -custom_constants/separation = 10 - -[node name="IgnoreBtn" type="Button" parent="ActionCtr/IgnoreCtr"] -margin_right = 22.0 -margin_bottom = 20.0 -icon = ExtResource( 1 ) - -[node name="IgnoreLbl" type="Label" parent="ActionCtr/IgnoreCtr"] -margin_left = 32.0 -margin_top = 3.0 -margin_right = 73.0 -margin_bottom = 17.0 -text = "Ignore" - -[node name="DescPanel" type="Panel" parent="."] -anchor_left = 0.281337 -anchor_top = 0.0859873 -anchor_right = 0.97493 -anchor_bottom = 0.684713 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="DescriptionLbl" type="RichTextLabel" parent="DescPanel"] -anchor_left = 0.0160643 -anchor_top = 0.0194175 -anchor_right = 0.971888 -anchor_bottom = 0.975728 -margin_left = 0.652039 -margin_right = 0.652039 -__meta__ = { -"_edit_lock_": true, -"_edit_use_anchors_": true -} - -[node name="AnalysisCtr" type="HBoxContainer" parent="."] -anchor_left = 0.549742 -anchor_top = 0.869427 -anchor_right = 0.967569 -anchor_bottom = 0.933121 -custom_constants/separation = 10 -alignment = 1 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="AnalysisLbl" type="Label" parent="AnalysisCtr"] -margin_left = 5.0 -margin_top = 3.0 -margin_right = 111.0 -margin_bottom = 17.0 -text = "Impact Analysis:" - -[node name="AnalysisBtn" type="Button" parent="AnalysisCtr"] -margin_left = 121.0 -margin_right = 143.0 -margin_bottom = 20.0 -icon = ExtResource( 3 ) - -[connection signal="pressed" from="ActionCtr/EnectCtr/EnectBtn" to="." method="_on_EnectBtn_pressed"] -[connection signal="pressed" from="ActionCtr/IgnoreCtr/IgnoreBtn" to="." method="_on_IgnoreBtn_pressed"] -[connection signal="pressed" from="AnalysisCtr/AnalysisBtn" to="." method="_on_AnalysisBtn_pressed"] diff --git a/scenes/windows/Status.tscn b/scenes/windows/Status.tscn deleted file mode 100644 index 1dbbc3b..0000000 --- a/scenes/windows/Status.tscn +++ /dev/null @@ -1,187 +0,0 @@ -[gd_scene load_steps=12 format=2] - -[ext_resource path="res://scripts/ticker.gd" type="Script" id=1] -[ext_resource path="res://assets/symbols/fontawesome/fast.svg" type="Texture" id=2] -[ext_resource path="res://assets/symbols/fontawesome/cogs.svg" type="Texture" id=3] -[ext_resource path="res://scripts/city_status.gd" type="Script" id=4] -[ext_resource path="res://assets/symbols/fontawesome/coins.svg" type="Texture" id=5] -[ext_resource path="res://assets/symbols/fontawesome/city.svg" type="Texture" id=6] -[ext_resource path="res://assets/symbols/fontawesome/envelope.svg" type="Texture" id=7] -[ext_resource path="res://assets/symbols/fontawesome/slow.svg" type="Texture" id=8] -[ext_resource path="res://assets/symbols/fontawesome/population.svg" type="Texture" id=9] -[ext_resource path="res://assets/symbols/fontawesome/pie-chart.svg" type="Texture" id=10] -[ext_resource path="res://assets/symbols/fontawesome/calendar.svg" type="Texture" id=11] - -[node name="Status" type="Panel"] -anchor_right = 1.0 -margin_bottom = 64.0 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="SettingsBtn" type="Button" parent="."] -anchor_left = 0.0115391 -anchor_top = 0.193259 -anchor_right = 0.0525548 -anchor_bottom = 0.670871 -margin_top = -9.53674e-07 -hint_tooltip = "Meet" -size_flags_horizontal = 4 -icon = ExtResource( 3 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="StatCtr" type="HBoxContainer" parent="."] -anchor_left = 0.0566406 -anchor_top = 0.208955 -anchor_right = 0.601562 -anchor_bottom = 0.746269 -margin_top = 9.53674e-07 -custom_constants/separation = 50 -alignment = 1 -script = ExtResource( 4 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="ButtonCtr" type="HBoxContainer" parent="StatCtr"] -margin_left = 30.0 -margin_right = 312.0 -margin_bottom = 36.0 -custom_constants/separation = 10 -alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="TaxBtn" type="Button" parent="StatCtr/ButtonCtr"] -margin_right = 42.0 -margin_bottom = 36.0 -hint_tooltip = "RCI" -size_flags_horizontal = 4 -icon = ExtResource( 10 ) - -[node name="ToolsBtn" type="Button" parent="StatCtr/ButtonCtr"] -margin_left = 52.0 -margin_right = 94.0 -margin_bottom = 36.0 -hint_tooltip = "Tools" -size_flags_horizontal = 4 -icon = ExtResource( 6 ) - -[node name="AdvsiorBtn" type="Button" parent="StatCtr/ButtonCtr"] -margin_left = 104.0 -margin_right = 146.0 -margin_bottom = 36.0 -hint_tooltip = "Meet" -size_flags_horizontal = 4 -icon = ExtResource( 7 ) - -[node name="VSeparator" type="VSeparator" parent="StatCtr/ButtonCtr"] -margin_left = 156.0 -margin_right = 160.0 -margin_bottom = 36.0 - -[node name="TurtleBtn" type="Button" parent="StatCtr/ButtonCtr"] -margin_left = 170.0 -margin_right = 211.0 -margin_bottom = 36.0 -hint_tooltip = "Slow" -toggle_mode = true -icon = ExtResource( 8 ) - -[node name="CheetaBtn" type="Button" parent="StatCtr/ButtonCtr"] -margin_left = 221.0 -margin_right = 268.0 -margin_bottom = 36.0 -hint_tooltip = "Fast" -toggle_mode = true -icon = ExtResource( 2 ) - -[node name="VSeparator2" type="VSeparator" parent="StatCtr/ButtonCtr"] -margin_left = 278.0 -margin_right = 282.0 -margin_bottom = 36.0 - -[node name="NameDate" type="VBoxContainer" parent="StatCtr"] -margin_left = 362.0 -margin_right = 450.0 -margin_bottom = 36.0 -alignment = 1 - -[node name="CityNameLbl" type="Label" parent="StatCtr/NameDate"] -margin_top = 2.0 -margin_right = 88.0 -margin_bottom = 16.0 -text = "City Name" -align = 1 - -[node name="YearCtr" type="HBoxContainer" parent="StatCtr/NameDate"] -margin_top = 20.0 -margin_right = 88.0 -margin_bottom = 34.0 - -[node name="CalIcon" type="TextureRect" parent="StatCtr/NameDate/YearCtr"] -margin_right = 10.0 -margin_bottom = 14.0 -texture = ExtResource( 11 ) -stretch_mode = 4 - -[node name="CalendarLbl" type="Label" parent="StatCtr/NameDate/YearCtr"] -margin_left = 14.0 -margin_right = 88.0 -margin_bottom = 14.0 -text = "01/01/2000" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="PopBudget" type="VBoxContainer" parent="StatCtr"] -margin_left = 500.0 -margin_right = 526.0 -margin_bottom = 36.0 -alignment = 1 - -[node name="BudgetCtr" type="HBoxContainer" parent="StatCtr/PopBudget"] -margin_top = 2.0 -margin_right = 26.0 -margin_bottom = 16.0 - -[node name="CoinsIcon" type="TextureRect" parent="StatCtr/PopBudget/BudgetCtr"] -margin_right = 14.0 -margin_bottom = 14.0 -texture = ExtResource( 5 ) -stretch_mode = 4 - -[node name="BudgetLbl" type="Label" parent="StatCtr/PopBudget/BudgetCtr"] -margin_left = 18.0 -margin_right = 26.0 -margin_bottom = 14.0 -text = "0" - -[node name="PopCtr" type="HBoxContainer" parent="StatCtr/PopBudget"] -margin_top = 20.0 -margin_right = 26.0 -margin_bottom = 34.0 - -[node name="PopIcon" type="TextureRect" parent="StatCtr/PopBudget/PopCtr"] -margin_right = 14.0 -margin_bottom = 14.0 -texture = ExtResource( 9 ) -stretch_mode = 4 - -[node name="PopLbl" type="Label" parent="StatCtr/PopBudget/PopCtr"] -margin_left = 18.0 -margin_right = 26.0 -margin_bottom = 14.0 -text = "0" - -[node name="Ticker" type="ItemList" parent="."] -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 622.0 -__meta__ = { -"_edit_use_anchors_": false -} diff --git a/scenes/windows/TaxWindow.tscn b/scenes/windows/TaxWindow.tscn deleted file mode 100644 index 113db1a..0000000 --- a/scenes/windows/TaxWindow.tscn +++ /dev/null @@ -1,174 +0,0 @@ -[gd_scene load_steps=5 format=2] - -[ext_resource path="res://assets/symbols/fontawesome/coins.svg" type="Texture" id=1] -[ext_resource path="res://scripts/tax_window.gd" type="Script" id=2] -[ext_resource path="res://assets/symbols/fontawesome/arrow-pointing-down.svg" type="Texture" id=3] -[ext_resource path="res://assets/symbols/fontawesome/arrow-up.svg" type="Texture" id=4] - -[node name="TaxWindow" type="WindowDialog"] -visible = true -anchor_left = 0.2809 -anchor_top = 0.265764 -anchor_right = 0.631486 -anchor_bottom = 0.447431 -margin_left = -0.641174 -margin_right = -0.641174 -window_title = "RCI" -script = ExtResource( 2 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="TaxSlidersCtr" type="VBoxContainer" parent="."] -anchor_left = 0.0167131 -anchor_top = 0.0666667 -anchor_right = 0.874652 -anchor_bottom = 0.6 -alignment = 1 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="ResCtr" type="HSplitContainer" parent="TaxSlidersCtr"] -margin_top = 1.0 -margin_right = 308.0 -margin_bottom = 17.0 -dragger_visibility = 1 - -[node name="ResLbl" type="Label" parent="TaxSlidersCtr/ResCtr"] -margin_top = 1.0 -margin_right = 71.0 -margin_bottom = 15.0 -text = "Residential" -align = 2 - -[node name="ResSlider" type="HSlider" parent="TaxSlidersCtr/ResCtr"] -margin_left = 83.0 -margin_right = 308.0 -margin_bottom = 16.0 -min_value = 1.0 -max_value = 10.0 -value = 1.0 - -[node name="ComCtr" type="HSplitContainer" parent="TaxSlidersCtr"] -margin_top = 21.0 -margin_right = 308.0 -margin_bottom = 37.0 -dragger_visibility = 1 - -[node name="ComLbl" type="Label" parent="TaxSlidersCtr/ComCtr"] -margin_top = 1.0 -margin_right = 77.0 -margin_bottom = 15.0 -text = "Commerical" -align = 2 - -[node name="ComSlider" type="HSlider" parent="TaxSlidersCtr/ComCtr"] -margin_left = 89.0 -margin_right = 308.0 -margin_bottom = 16.0 -min_value = 1.0 -max_value = 10.0 -value = 1.0 - -[node name="IndCtr" type="HSplitContainer" parent="TaxSlidersCtr"] -margin_top = 41.0 -margin_right = 308.0 -margin_bottom = 57.0 -dragger_visibility = 1 - -[node name="IndLbl" type="Label" parent="TaxSlidersCtr/IndCtr"] -margin_top = 1.0 -margin_right = 57.0 -margin_bottom = 15.0 -text = "Industral" -align = 2 - -[node name="IndSlider" type="HSlider" parent="TaxSlidersCtr/IndCtr"] -margin_left = 69.0 -margin_right = 308.0 -margin_bottom = 16.0 -min_value = 1.0 -max_value = 10.0 -value = 1.0 - -[node name="PrecentCtr" type="VBoxContainer" parent="."] -anchor_left = 0.88329 -anchor_top = 0.0790961 -anchor_right = 0.991643 -anchor_bottom = 0.555287 -margin_bottom = -20.339 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="ResPctLbl" type="Label" parent="PrecentCtr"] -margin_right = 38.0 -margin_bottom = 14.0 -text = "1%" - -[node name="ComPctLbl" type="Label" parent="PrecentCtr"] -margin_top = 18.0 -margin_right = 38.0 -margin_bottom = 32.0 -text = "1%" - -[node name="IndPctLbl" type="Label" parent="PrecentCtr"] -margin_top = 36.0 -margin_right = 38.0 -margin_bottom = 50.0 -text = "1%" - -[node name="IncomeCtr" type="HBoxContainer" parent="."] -anchor_left = 0.00707957 -anchor_top = 0.650614 -anchor_right = 0.973653 -anchor_bottom = 0.843274 -alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="CoinIcn" type="TextureRect" parent="IncomeCtr"] -margin_left = 115.0 -margin_right = 129.0 -margin_bottom = 20.0 -texture = ExtResource( 1 ) -stretch_mode = 6 - -[node name="UpArrowIcn" type="TextureRect" parent="IncomeCtr"] -modulate = Color( 0.054902, 1, 0, 1 ) -margin_left = 133.0 -margin_right = 142.0 -margin_bottom = 20.0 -texture = ExtResource( 4 ) -stretch_mode = 6 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="IcnomeLbl" type="Label" parent="IncomeCtr"] -margin_left = 146.0 -margin_top = 3.0 -margin_right = 180.0 -margin_bottom = 17.0 -text = "0/mo" - -[node name="DownArrowIcn" type="TextureRect" parent="IncomeCtr"] -modulate = Color( 1, 0, 0, 1 ) -margin_left = 184.0 -margin_right = 193.0 -margin_bottom = 20.0 -texture = ExtResource( 3 ) -stretch_mode = 6 - -[node name="ExpensivesLbl" type="Label" parent="IncomeCtr"] -margin_left = 197.0 -margin_top = 3.0 -margin_right = 231.0 -margin_bottom = 17.0 -text = "0/mo" - -[connection signal="value_changed" from="TaxSlidersCtr/ResCtr/ResSlider" to="." method="_on_ResSlider_value_changed"] -[connection signal="value_changed" from="TaxSlidersCtr/ComCtr/ComSlider" to="." method="_on_ComSlider_value_changed"] -[connection signal="value_changed" from="TaxSlidersCtr/IndCtr/IndSlider" to="." method="_on_IndSlider_value_changed"] diff --git a/scenes/windows/ToolsWindow.tscn b/scenes/windows/ToolsWindow.tscn deleted file mode 100644 index 227fbc2..0000000 --- a/scenes/windows/ToolsWindow.tscn +++ /dev/null @@ -1,163 +0,0 @@ -[gd_scene load_steps=24 format=2] - -[ext_resource path="res://assets/ui/iccom.png" type="Texture" id=1] -[ext_resource path="res://assets/ui/icpolhi.png" type="Texture" id=2] -[ext_resource path="res://assets/ui/iccomhi.png" type="Texture" id=3] -[ext_resource path="res://assets/ui/icres.png" type="Texture" id=4] -[ext_resource path="res://assets/ui/icreshi.png" type="Texture" id=5] -[ext_resource path="res://assets/ui/icfire.png" type="Texture" id=6] -[ext_resource path="res://assets/ui/icindhi.png" type="Texture" id=7] -[ext_resource path="res://assets/ui/icind.png" type="Texture" id=8] -[ext_resource path="res://assets/ui/icqry.png" type="Texture" id=9] -[ext_resource path="res://assets/ui/icpol.png" type="Texture" id=10] -[ext_resource path="res://assets/ui/icnuc.png" type="Texture" id=11] -[ext_resource path="res://assets/ui/icpark.png" type="Texture" id=12] -[ext_resource path="res://assets/ui/icseap.png" type="Texture" id=13] -[ext_resource path="res://assets/ui/icseaphi.png" type="Texture" id=14] -[ext_resource path="res://assets/ui/icstad.png" type="Texture" id=15] -[ext_resource path="res://assets/ui/icdozrhi.png" type="Texture" id=16] -[ext_resource path="res://assets/ui/icfirehi.png" type="Texture" id=17] -[ext_resource path="res://assets/ui/iccoal.png" type="Texture" id=18] -[ext_resource path="res://assets/ui/icqryhi.png" type="Texture" id=19] -[ext_resource path="res://assets/ui/icparkhi.png" type="Texture" id=20] -[ext_resource path="res://assets/ui/icdozr.png" type="Texture" id=21] -[ext_resource path="res://assets/ui/iccoalhi.png" type="Texture" id=22] -[ext_resource path="res://assets/ui/icnuchi.png" type="Texture" id=23] - -[node name="ToolsWindow" type="WindowDialog"] -anchor_left = 0.40332 -anchor_top = 0.315 -anchor_right = 0.544922 -anchor_bottom = 0.683333 -window_title = "Tools" -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="CenterCtr" type="CenterContainer" parent="."] -anchor_left = 0.5 -anchor_right = 0.5 -anchor_bottom = 1.0 -margin_left = -90.0 -margin_right = 90.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="VertCtr" type="VBoxContainer" parent="CenterCtr"] -margin_top = 24.0 -margin_right = 180.0 -margin_bottom = 196.0 - -[node name="LargeCtr" type="HBoxContainer" parent="CenterCtr/VertCtr"] -margin_right = 180.0 -margin_bottom = 42.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="TextureButton" type="TextureButton" parent="CenterCtr/VertCtr/LargeCtr"] -margin_right = 42.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 15 ) - -[node name="TextureButton2" type="TextureButton" parent="CenterCtr/VertCtr/LargeCtr"] -margin_left = 46.0 -margin_right = 88.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 13 ) -texture_pressed = ExtResource( 14 ) - -[node name="NuclearBtn" type="TextureButton" parent="CenterCtr/VertCtr/LargeCtr"] -margin_left = 92.0 -margin_right = 134.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 11 ) -texture_pressed = ExtResource( 23 ) - -[node name="CoalBtn" type="TextureButton" parent="CenterCtr/VertCtr/LargeCtr"] -margin_left = 138.0 -margin_right = 180.0 -margin_bottom = 42.0 -texture_normal = ExtResource( 18 ) -texture_pressed = ExtResource( 22 ) - -[node name="SmallCtr" type="HBoxContainer" parent="CenterCtr/VertCtr"] -margin_top = 46.0 -margin_right = 180.0 -margin_bottom = 80.0 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="PoliceBtn" type="TextureButton" parent="CenterCtr/VertCtr/SmallCtr"] -margin_right = 34.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 2 ) -texture_pressed = ExtResource( 10 ) - -[node name="FireBtn" type="TextureButton" parent="CenterCtr/VertCtr/SmallCtr"] -margin_left = 38.0 -margin_right = 72.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 17 ) -texture_pressed = ExtResource( 6 ) - -[node name="ParkBtn" type="TextureButton" parent="CenterCtr/VertCtr/SmallCtr"] -margin_left = 76.0 -margin_right = 110.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 12 ) -texture_pressed = ExtResource( 20 ) - -[node name="ToolsCtr" type="HBoxContainer" parent="CenterCtr/VertCtr"] -margin_top = 84.0 -margin_right = 180.0 -margin_bottom = 118.0 -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="InfoBtn" type="TextureButton" parent="CenterCtr/VertCtr/ToolsCtr"] -margin_right = 34.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 9 ) -texture_pressed = ExtResource( 19 ) - -[node name="BulldozeBtn" type="TextureButton" parent="CenterCtr/VertCtr/ToolsCtr"] -margin_left = 38.0 -margin_right = 72.0 -margin_bottom = 34.0 -texture_normal = ExtResource( 21 ) -texture_pressed = ExtResource( 16 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ZonesCtr" type="HBoxContainer" parent="CenterCtr/VertCtr"] -margin_top = 122.0 -margin_right = 180.0 -margin_bottom = 172.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ResBtn" type="TextureButton" parent="CenterCtr/VertCtr/ZonesCtr"] -margin_right = 34.0 -margin_bottom = 50.0 -texture_normal = ExtResource( 4 ) -texture_pressed = ExtResource( 5 ) - -[node name="ComBtn" type="TextureButton" parent="CenterCtr/VertCtr/ZonesCtr"] -margin_left = 38.0 -margin_right = 72.0 -margin_bottom = 50.0 -texture_normal = ExtResource( 1 ) -texture_pressed = ExtResource( 3 ) - -[node name="IndBtn" type="TextureButton" parent="CenterCtr/VertCtr/ZonesCtr"] -margin_left = 76.0 -margin_right = 110.0 -margin_bottom = 50.0 -texture_normal = ExtResource( 8 ) -texture_pressed = ExtResource( 7 ) diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 6bc0bec..0000000 Binary files a/screenshot.png and /dev/null differ diff --git a/screenshot.png.import b/screenshot.png.import deleted file mode 100644 index 19e05c6..0000000 --- a/screenshot.png.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://screenshot.png" -dest_files=[ "res://.import/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/resources/.gdignore b/script_templates/.gdignore similarity index 100% rename from resources/.gdignore rename to script_templates/.gdignore diff --git a/script_templates/BTNode/default.gd b/script_templates/BTNode/default.gd new file mode 100644 index 0000000..880773c --- /dev/null +++ b/script_templates/BTNode/default.gd @@ -0,0 +1,4 @@ +extends _BASE_ + +func tick(actor:Node2D, blackboard:BTBlackboard) -> int: + return BTTickResult.SUCCESS diff --git a/scripts/Zone.gd b/scripts/Zone.gd deleted file mode 100644 index f59c823..0000000 --- a/scripts/Zone.gd +++ /dev/null @@ -1,39 +0,0 @@ -extends Area2D - -onready var zone = $Sprite -onready var quarters = $Quarters -onready var animator = $AnimationPlayer - -var can_grab = false -var grabbed_offset = Vector2() - -func _ready(): - zone.frame = 0 - -#func _drag_drop(event): -# if event is InputEventMouseButton and can_grab: -# # Substract from the player's budget and disable grabbing -# if SimData.budget >= cost: -# SimData.budget -= cost -# can_grab = false -# grabbed_offset = position - get_global_mouse_position() - -#func _input(event): -# _drag_drop(event) - -func _process(delta): - if SimData.has_power == true: - animator.play("Animante") - else: - animator.stop() -# if can_grab: -# position = get_global_mouse_position() + grabbed_offset - -#func _animante_sprite(animante: bool = true): -# if zone.hframes > 1 or zone.vframes > 1 and animante: -# animator.play("Animante") -# else: -# animator.stop() - -#func _grab_zone(): -# can_grab = true diff --git a/scripts/advisor_window.gd b/scripts/advisor_window.gd deleted file mode 100644 index 88f6e1a..0000000 --- a/scripts/advisor_window.gd +++ /dev/null @@ -1,96 +0,0 @@ -extends AcceptDialog - -var dialogue_file -# "character" would be "name" but it's already used by the base class -var character -var rank -var avatar - -var dialogue_keys = [] -var dialogue_name = "" -var dialogue_text = "" - -onready var avatar_texture = $Container/Advisor/Avatar -onready var rank_label = $Container/Advisor/RankLbl -onready var name_label = $Container/Advisor/NameLbl -onready var description_label = $Container/DescriptionLbl - -enum JsonFile { - ANNOUNCEMENTS, - ANALYSIS -} - -func _ready(): - SimEvents.connect("advisor_message", self, "_advisor_dialogue") - SimEvents.connect("policy_analysis", self, "_analysis_dialouge") - -func _init_advisor(file, advisor): - match advisor: - SimData.Advisors.CITY_PLANNER: - match file: - JsonFile.ANNOUNCEMENTS: - dialogue_file = "res://json/advisors/cityplanner.json" - JsonFile.ANALYSIS: - dialogue_file = "res://json/policies/cityplanner_analysis.json" - - avatar_texture.texture = preload("res://assets/avatars/cindy.png") - name_label.text = "Cindy Diamond" - rank_label.text = "City Planner" - - SimData.Advisors.FINANCIAL: - match file: - JsonFile.ANNOUNCEMENTS: - dialogue_file = "res://json/advisors/finacial.json" - JsonFile.ANALYSIS: - dialogue_file = "res://json/policies/finacial_analysis.json" - - avatar_texture.texture = preload("res://assets/avatars/kit.png") - name_label.text = "Kit Welsh" - rank_label.text = "Financial Advisor" - - SimData.Advisors.TRANSPORT: - match file: - JsonFile.ANNOUNCEMENTS: - dialogue_file = "res://json/advisors/transport.json" - JsonFile.ANALYSIS: - dialogue_file = "res://json/policies/transport_analysis.json" - - avatar_texture.texture = preload("res://assets/avatars/zc.png") - name_label.text = "Zack Casey" - rank_label.text = "Transportation Advisor" - -func _launch_advisor_window(key): -# _index_dialogue() -# var message: String = dialogue_keys[key].text -# -# if "[name]" in message: -# message = message.replace("[name]", SimData.mayor_name) -# -# if "[city]" in message: -# message = message.replace("[city]", SimData.city_name) -# -# description_label.text = message -# window_title = dialogue_keys[key].name -# show() - pass - -func _advisor_dialogue(advisor, message): - _init_advisor(JsonFile.ANNOUNCEMENTS, advisor) - _launch_advisor_window(message) - -func _analysis_dialouge(advisor, policy): - _init_advisor(JsonFile.ANALYSIS, advisor) - _launch_advisor_window(policy) - -func _index_dialogue(): - var dialogue = _load_dialogue() - dialogue_keys.clear() - for key in dialogue: - dialogue_keys.append(dialogue[key]) - -func _load_dialogue(): - var file = File.new() - if file.file_exists(dialogue_file): - file.open(dialogue_file, file.READ) - var dialogue = parse_json(file.get_as_text()) - return dialogue diff --git a/scripts/autoload/caseyverse.gd b/scripts/autoload/caseyverse.gd deleted file mode 100644 index d73484c..0000000 --- a/scripts/autoload/caseyverse.gd +++ /dev/null @@ -1,10 +0,0 @@ -extends Node - -const caseyverse_path = "res://json/ticker/extra_lore.json" -const news_outlets = "res://json/ticker/extra_lore.json" -const is_caseyverse_path = "res://is_caseyverse.txt" - -func is_caseyverse(): - var file = File.new() - if file.file_exists(is_caseyverse_path): - return true diff --git a/scripts/autoload/jsonhelper.gd b/scripts/autoload/jsonhelper.gd deleted file mode 100644 index e2f4f8c..0000000 --- a/scripts/autoload/jsonhelper.gd +++ /dev/null @@ -1,11 +0,0 @@ -extends Node - -func key_value(json_path, json_file, key, is_dictionary = false): - var file = File.new() - var full_path = str(json_path + json_file); - if file.file_exists(full_path): - file.open(full_path, File.READ) - var result = parse_json(file.get_as_text()) - if is_dictionary == true: - result.clear() - return result[key] diff --git a/scripts/autoload/power_grid.gd b/scripts/autoload/power_grid.gd deleted file mode 100644 index 9af894b..0000000 --- a/scripts/autoload/power_grid.gd +++ /dev/null @@ -1,7 +0,0 @@ -extends Node - -var power_grid: int # Number of power stations in the area. Helps provide redundancies. -var power_capacity: int -var current_power_cap: int -var prev_power_cap: int -var has_power: bool diff --git a/scripts/autoload/sim_data.gd b/scripts/autoload/sim_data.gd deleted file mode 100644 index baf0e19..0000000 --- a/scripts/autoload/sim_data.gd +++ /dev/null @@ -1,88 +0,0 @@ -extends Node - -const DEFAULT_CITY = "defualt.json" -const SAVE_PATH = "res://json/saves/" - -var city_name: String = "" -var mayor_name: String = "" -var population: int = 0 -var budget: int = 20000 -var expenses: int -var on_alert: bool = false -var has_ctower: bool = false # Central Tower - -var power_grid: int # Number of power stations in the area. Helps provide redundancies. -var power_capacity: int -var current_power_cap: int -var prev_power_cap: int -var has_power: bool - -var res_tax: int = 5 -var res_income: int - -var ticker_files: Array = [ - "adverts.json", - "sammy.json" -] -var prev_ticker_files: Array = [] - -enum GameSpeed { - SLOW, - MEDIUM, - FAST -} - -enum Level { - EASY, - MEDIUM, - HARD -} - -enum Advisors { - CITY_PLANNER, - FINANCIAL, - TRANSPORT -} - -enum Ordinances { - # Education - CPR_TRAINING, - PRO_READING, - NHOOD_WATCH, - # Financial - PARKING_FINES, - GAMBLING, - SALES_TAX, - # Promo - ANNUAL_CARNIVAL, - BUSINESS_ADS, - CITY_BEAUTY, - TOURIST_ADS - # Health & Safety - FREE_CLINICS, - JUNIOR_SPORTS, - SMOKING_BAN, - VOLUNTEER_FIRE, - SMOKE_DETECTOR, - # Environment - ENERGY_CONSERVATION, - HOMELESS_SHELTERS, - CLEAN_AIR_ACT, - TIRE_RECYCLE -} - -func _ready(): - if city_name == "": - city_name = JsonHelper.key_value(SAVE_PATH, DEFAULT_CITY, "city") - - if mayor_name == "": - mayor_name = JsonHelper.key_value(SAVE_PATH, DEFAULT_CITY, "mayor") - -#func starting_budget(lev = Level.EASY): -# match lev: -# Level.EASY: -# budget = 20000 -# Level.MEDIUM: -# budget = 10000 -# Level.HARD: -# budget = 5000 diff --git a/scripts/autoload/sim_events.gd b/scripts/autoload/sim_events.gd deleted file mode 100644 index 257b82b..0000000 --- a/scripts/autoload/sim_events.gd +++ /dev/null @@ -1,18 +0,0 @@ -extends Node - -signal has_power -signal budget -signal game_speed - -# Policies and Advisors -signal policy_message(policy) -signal policy_analysis(advisor, policy) -signal advisor_message(advisor, message) - -# News -signal send_alert(message) -signal rotate_news - -# Policies -signal clean_air_act -signal energy_saving diff --git a/scripts/autoload/sim_time.gd b/scripts/autoload/sim_time.gd deleted file mode 100644 index cdfb76c..0000000 --- a/scripts/autoload/sim_time.gd +++ /dev/null @@ -1,32 +0,0 @@ -extends Node - -var year: int = 2000 setget increment_year -var prev_year: int -var month: int = 1 setget increment_month -var prev_month: int -var day: int = 1 setget increment_day -var prev_day: int - -func new_year(): - prev_year = year - prev_day = day - prev_month = month - increment_year(1) - day = 1 - month = 1 - -func reset_day(): - prev_day = day - day = 1 - -func increment_day(new_day): - prev_day = day - day += new_day - -func increment_year(new_year): - prev_year = year - year += new_year - -func increment_month(new_month): - prev_month = month - month += new_month diff --git a/scripts/autoload/zone_data.gd b/scripts/autoload/zone_data.gd deleted file mode 100644 index ddf30e5..0000000 --- a/scripts/autoload/zone_data.gd +++ /dev/null @@ -1,13 +0,0 @@ -extends Node - -var res_tax: int = 1 -var comm_tax: int = 1 -var indust_tax: int = 1 - -var res_income: int -var comm_income: int -var ind_income: int - -var fire_tax: int -var police_tax: int -var power_tax: int diff --git a/scripts/camera_move.gd b/scripts/camera_move.gd deleted file mode 100644 index 42df9ad..0000000 --- a/scripts/camera_move.gd +++ /dev/null @@ -1,65 +0,0 @@ -extends Camera2D - -export var panSpeed = 10.0 -export var speed = 25.0 -export var zoomspeed = 50.0 -export var zoommargin = 0.3 - -export var zoomMin = 0.5 -export var zoomMax = 3.0 -export var marginX = 200.0 -export var marginY = 100.0 - -var mousepos = Vector2() -var zoompos = Vector2() -var zoomfactor = 1.0 - - -func _ready(): - pass - - -func _process(delta): - # Smooth Movement - var inputx = (int(Input.is_action_pressed("ui_right")) - int(Input.is_action_pressed("ui_left"))) - var inputy = (int(Input.is_action_pressed("ui_down")) - int(Input.is_action_pressed("ui_up"))) - position.x = lerp(position.x, position.x + inputx * speed * zoom.x, speed * delta) - position.y = lerp(position.y, position.y + inputy * speed * zoom.y, speed * delta) - - # Edge scrolling via. Ctrl + Right Click - if Input.is_key_pressed(KEY_CONTROL): - # check mouse postion - if mousepos.x < marginX: - position.x = lerp(position.x, position.x - abs(mousepos.x - marginX) / marginX * panSpeed * zoom.x, panSpeed * delta) - elif mousepos.x > OS.window_size.x - marginX: - position.x = lerp(position.x, position.x + abs(mousepos.x - OS.window_size.x + marginX) / marginX * panSpeed * zoom.x, panSpeed * delta) - - if mousepos.y < marginY: - position.y = lerp(position.y, position.y - abs(mousepos.y - marginY) / marginY * panSpeed * zoom.y, panSpeed * delta) - elif mousepos.y > OS.window_size.y - marginY: - position.y = lerp(position.y, position.y + abs(mousepos.y - OS.window_size.y + marginX) / marginX * panSpeed * zoom.y, panSpeed * delta) - - # Zooming - zoom.x = lerp(zoom.x, zoom.x * zoomfactor, zoomspeed * delta) - zoom.y = lerp(zoom.y, zoom.y * zoomfactor, zoomspeed * delta) - - zoom.x = clamp(zoom.x, zoomMin, zoomMax) - zoom.y = clamp(zoom.y, zoomMin, zoomMax) - -func _input(event): - if abs(zoompos.x - get_global_mouse_position().x) > zoommargin: - zoomfactor = 1.0 - if abs(zoompos.y - get_global_mouse_position().y) > zoommargin: - zoomfactor = 1.0 - - if event is InputEventMouseButton: - if event.is_pressed(): - if event.button_index == BUTTON_WHEEL_UP: - zoomfactor -= 0.01 - zoompos = get_global_mouse_position() - if event.button_index == BUTTON_WHEEL_DOWN: - zoomfactor += 0.01 - zoompos = get_global_mouse_position() - - if event is InputEventMouse: - mousepos = event.position diff --git a/scripts/city_status.gd b/scripts/city_status.gd deleted file mode 100644 index ee69645..0000000 --- a/scripts/city_status.gd +++ /dev/null @@ -1,12 +0,0 @@ -extends HBoxContainer - -onready var city_name = $NameDate/CityNameLbl -onready var budget = $PopBudget/BudgetCtr/BudgetLbl -onready var calendar = $NameDate/YearCtr/CalendarLbl - -func _process(delta): - city_name.text = SimData.city_name - budget.text = str(SimData.budget) - var day = "%02d" % SimTime.day - var month = "%02d" % SimTime.month - calendar.text = str(day) + "/" + str(month) + "/" + str(SimTime.year) diff --git a/scripts/command_handler.gd b/scripts/command_handler.gd deleted file mode 100644 index 99417de..0000000 --- a/scripts/command_handler.gd +++ /dev/null @@ -1,40 +0,0 @@ -extends Node - -enum { - ARG_INT, - ARG_STRING, - ARG_BOOL, - ARG_FLOAT -} - -const valid_commands = [ - ["money", [ARG_STRING] ], - ["whereyoufrom", [ARG_STRING] ], - ["whatyearisit", [ARG_STRING] ], - ["show_policy", [ARG_INT]], - ["set_month", [ARG_INT]], - ["set_year", [ARG_INT]] -] - -func set_month(month): - SimTime.month = month - -func set_year(year): - SimTime.year = year - -func show_policy(policy): - SimEvents.emit_signal("policy_message", policy) - -func _budget_print(value: int): - return "Budget increased to " + str(value) - -func money(value): - SimData.budget += int(value) - -func whereyoufrom(value): - SimData.city_name = str(value) - return "Changed city name to: " + str(value) - -func whatyearisit(value): - SimData.year = int(value) - return "Change year to: " + str(value) diff --git a/scripts/debug_console.gd b/scripts/debug_console.gd deleted file mode 100644 index 48c16ae..0000000 --- a/scripts/debug_console.gd +++ /dev/null @@ -1,64 +0,0 @@ -extends WindowDialog - -onready var input_box = $Input -onready var output_box = $Output -onready var command_handler = $CommandHandler - -func _ready(): - input_box.grab_focus() - -func process_command(text: String): - var words = text.split(" ") - words = Array(words) - - for i in range(words.count("")): - words.erase("") - - if words.size() == 0: - return - - var cmd_word = words.pop_front() - - for cmd in command_handler.valid_commands: - if cmd[0] == cmd_word: - if words.size() != cmd[1].size(): - output_text(str('Failure executing command "', cmd_word, - '", expected ', cmd[1].size(), ' parameters')) - return - - for i in range(words.size()): - if not check_type(words[i], cmd[1][i]): - output_text(str('Failure executing command "', cmd_word, - '", parameter ', (i + 1), ' ("', words[i], '") is of the wrong type')) - return - - output_text(command_handler.callv(cmd_word, words)) - return - - output_text(str('Command: "', cmd_word, '" does not exist')) - -func check_type(string: String, type): - if type == command_handler.ARG_INT: - return string.is_valid_integer() - - if type == command_handler.ARG_FLOAT: - return string.is_valid_float() - - if type == command_handler.ARG_STRING: - return true - - if type == command_handler.ARG_BOOL: - return (string == "true" or string == "false") - - return false - -func output_text(text): - output_box.text = str(output_box.text + "\n", text) - -func _on_Input_text_entered(new_text): - input_box.clear() - process_command(new_text) - -func _on_SubmitBtn_pressed(): - input_box.clear() - process_command(input_box.text) diff --git a/scripts/editor.gd b/scripts/editor.gd new file mode 100644 index 0000000..8106a23 --- /dev/null +++ b/scripts/editor.gd @@ -0,0 +1,22 @@ +extends Node2D + +var can_place: bool = true +var is_placed: bool +@onready var level = get_node("/root/main/Level") + +var current_item + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + global_position = get_global_mouse_position() + + if (current_item != null and can_place and Input.is_action_just_pressed("mb_left")): + var new_item = current_item.instantiate() + level.add_child(new_item) + new_item.global_position = get_global_mouse_position() + diff --git a/scripts/game.gd b/scripts/game.gd deleted file mode 100644 index 249fd8c..0000000 --- a/scripts/game.gd +++ /dev/null @@ -1,39 +0,0 @@ -extends Node2D - -onready var day_cycle = $DayCycle -#onready var turtle_btn = $Controls/Status/StatCtr/ButtonCtr/TurtleBtn -#onready var cheeta_btn = $Controls/Status/StatCtr/ButtonCtr/CheetaBtn - -func _ready(): - SimEvents.connect("rotate_news", self, "_rotate_news") - SimEvents.connect("send_alert", self, "_stop_news") - -func _on_DayCycle_timeout(): - - # Increment the number days until it reaches 30 - if SimTime.prev_day < 30: - SimTime.increment_day(1) - - # Reset the number of days to 1 on day 30 and increment the month - if SimTime.prev_day == 30: - SimTime.reset_day() - - # Increment month up until the 12th - if SimTime.prev_month != 12: - SimTime.increment_month(1) - - SimEvents.emit_signal("budget") - - # Increment the year on the 12th month - if SimTime.prev_month == 12: - SimTime.new_year() - -#func _on_TurtleBtn_toggled(button_pressed): -# if button_pressed: -# day_cycle.wait_time = 12 -# cheeta_btn.pressed = false -# -#func _on_CheetaBtn_toggled(button_pressed): -# if button_pressed: -# day_cycle.wait_time = 2 -# turtle_btn.pressed = false diff --git a/scripts/license_gui.gd b/scripts/license_gui.gd new file mode 100644 index 0000000..62dec21 --- /dev/null +++ b/scripts/license_gui.gd @@ -0,0 +1,150 @@ +extends Control + + +@export var load_locations: Array[String] +@export var export_locations: Array[String] + +@onready var tree: Tree = $Tree +@onready var text: TextEdit = $Text +@onready var license_manager: LicenseManager = $LicenseManager +@onready var op_locations: OptionButton = $op_locations + + +var root: TreeItem +var engine: TreeItem +var game: TreeItem +var licenses: TreeItem + +var copyright: String + +var location_index: int = 0 + +# key = identifier +# value = TreeItem +var licenses_dict = {} + +func _ready() -> void: + if not DirAccess.dir_exists_absolute("res://licenses/license_links/"): + DirAccess.make_dir_recursive_absolute("res://licenses/license_links/") + + refresh_after_location_change() + reload_license_manager() + + +func refresh_after_location_change(): + text.clear() + + if load_locations.size() == 0: + load_locations.append('res://licenses') + export_locations.clear() + export_locations.append('user://licenses/game/') + + location_index = 0 + op_locations.clear() + for i in load_locations.size(): + op_locations.add_item(load_locations[i]) + + +func reload_license_manager(): + text.clear() + license_manager.exclude_engine = location_index > 0 + tree.clear() + + license_manager.load_dir = load_locations[location_index] + license_manager.export_dir = export_locations[location_index] + license_manager.load_license_information() + + copyright = license_manager.get_combined_copyright() + + root = tree.create_item() + var combined = tree.create_item(root) + combined.set_text(0, "All Components") + combined.set_meta('mode', 'combined') + + game = tree.create_item() + var _name = 'Game' if location_index == 0 else 'Mod' + if _name == 'Game' and ProjectSettings.has_setting('application/config/name'): + _name = ProjectSettings.get_setting('application/config/name') + game.set_text(0, _name) + game.set_meta('mode', 'parent') + + if not license_manager.exclude_engine: + engine = tree.create_item() + engine.set_text(0, 'Godot Engine') + engine.set_meta('mode', 'parent') + + licenses = tree.create_item() + licenses.set_text(0, 'Licenses') + licenses.set_meta('mode', 'parent') + + var item: TreeItem + + var used_licenses = {} + + for parent_component in license_manager.license_links.by_parent: + for link in license_manager.license_links.by_parent[parent_component].values(): + if link is LicenseLink: + match parent_component: + "Game": + item = tree.create_item(game) + "Godot Engine": + item = tree.create_item(engine) + var valid_ids = license_manager.get_all_valid_licenses(link) + for id in valid_ids: + used_licenses[id] = valid_ids[id] + item.set_text(0, link.componet_name) + item.set_meta('mode', 'link') + item.set_meta('link', link) + + for license in used_licenses.values(): + if license is License: + item = tree.create_item(licenses) + item.set_text(0, license.identifier) + item.set_meta('mode', 'license') + item.set_meta('license', license) + licenses_dict[license.identifier] = item + + +func _on_tree_item_selected() -> void: + var item = tree.get_selected() + var mode = item.get_meta('mode') + match mode: + 'combined': + text.text = copyright + 'parent': + pass + 'link': + var link = item.get_meta('link') as LicenseLink + text.text = link.to_formatted_string(link.component_of == 'Godot Engine') + 'license': + var license = item.get_meta('license') as License + text.text = license.terms + + +func _on_tree_item_activated() -> void: + var item = tree.get_selected() + var mode = item.get_meta('mode') + match mode: + 'parent': + item.collapsed = not item.collapsed + 'link': + var link = item.get_meta('link') as LicenseLink + for id in link.license_identifiers: + if licenses_dict.has(id): + var to = licenses_dict[id] + to.select(0) + tree.scroll_to_item(to) + break + + +func _on_btn_open_data_dir_pressed() -> void: + OS.shell_open(OS.get_user_data_dir()) + + +func _on_button_pressed() -> void: + license_manager.export() + + +func _on_op_locations_item_selected(index: int) -> void: + location_index = index + reload_license_manager() diff --git a/scripts/policy_window.gd b/scripts/policy_window.gd deleted file mode 100644 index 9e69921..0000000 --- a/scripts/policy_window.gd +++ /dev/null @@ -1,70 +0,0 @@ -extends WindowDialog - -var dialogue_file = "res://dialog/policies/proposels.json" - -var dialogue_keys = [] -var dialogue_name = "" -var dialogue_text = "" -var policy_id - -onready var ordinance_label = $OrdinanceLbl -onready var description_label = $DescPanel/DescriptionLbl - -func _start_dialogue(policy): - match policy: - [SimData.Ordinances.ENERGY_CONSERVATION, 1]: - policy_id = 1 - _launch_policy_window(1) - [SimData.Ordinances.CLEAN_AIR_ACT, 3]: - policy_id = 2 - _launch_policy_window(2) - [SimData.Ordinances.TIRE_RECYCLE, 3]: - policy_id = 3 - _launch_policy_window(3) - -func _launch_policy_window(key): - _index_dialogue() - var message: String = dialogue_keys[key].text - - if "[name]" in message: - message = message.replace("[name]", SimData.mayor_name) - - if "[city]" in message: - message = message.replace("[city]", SimData.city_name) - - description_label.text = message - window_title = dialogue_keys[key].name - show() - -func _index_dialogue(): - var dialogue = _load_dialogue() - dialogue_keys.clear() - for key in dialogue: - dialogue_keys.append(dialogue[key]) - -func _load_dialogue(): - var file = File.new() - if file.file_exists(dialogue_file): - file.open(dialogue_file, file.READ) - var dialogue = parse_json(file.get_as_text()) - return dialogue - -func _ready(): - SimEvents.connect("policy_message", self, "_start_dialogue") - -func _on_IgnoreBtn_pressed(): - policy_id = 0 - description_label.text = "" - ordinance_label.text = "" - hide() - -func _on_EnectBtn_pressed(): - match policy_id: - 1: SimEvents.emit_signal("energy_saving") - 2: SimEvents.emit_signal("clean_air_act") - -func _on_AnalysisBtn_pressed(): - match policy_id: - 1: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id) - 2: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id) - 3: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id) diff --git a/scripts/power_station.gd b/scripts/power_station.gd deleted file mode 100644 index a3fde75..0000000 --- a/scripts/power_station.gd +++ /dev/null @@ -1,16 +0,0 @@ -extends "res://scripts/zone.gd" - -func _ready(): - SimEvents.connect("has_power", self, "_power_zones") - -func _power_zones(): - SimData.power_grid += 1 - - if SimData.power_grid <= 1: - SimData.has_power = true - -func _input(event): - _drag_drop(event) - - if can_grab == false: - SimEvents.emit_signal("has_power") diff --git a/scripts/simtactics/has_power.gd b/scripts/simtactics/has_power.gd deleted file mode 100644 index 7427664..0000000 --- a/scripts/simtactics/has_power.gd +++ /dev/null @@ -1,20 +0,0 @@ -extends ConditionLeaf - -export var cost: int = 10000 -export var income: int = 100 -export var expense: int = 0 - -func tick(actor, blackboard): - if SimData.has_power: - if SimData.budget >= expense: - SimData.budget -= expense - SimData.expenses = expense - - if SimData.has_power: - var total_income = SimData.res_tax * income - SimData.budget += total_income - SimData.res_income = total_income - - return SUCCESS - - return FAILURE diff --git a/scripts/simtactics/turn_on.gd b/scripts/simtactics/turn_on.gd deleted file mode 100644 index a45af1f..0000000 --- a/scripts/simtactics/turn_on.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends ConditionLeaf - -func tick(actor, blackboard): - SimData.has_power = true - return RUNNING diff --git a/scripts/simtactics/zone.gd b/scripts/simtactics/zone.gd deleted file mode 100644 index 1d6d575..0000000 --- a/scripts/simtactics/zone.gd +++ /dev/null @@ -1,18 +0,0 @@ -extends ConditionLeaf - -export var cost: int = 10000 -export var income: int = 100 -export var expense: int = 0 - -func tick(actor, blackboard): - if SimData.has_power: - if SimData.budget >= expense: - SimData.budget -= expense - SimData.expenses = expense - - if SimData.has_power: - var total_income = SimData.res_tax * income - SimData.budget += total_income - SimData.res_income = total_income - - return RUNNING diff --git a/scripts/start_game.gd b/scripts/start_game.gd deleted file mode 100644 index 4d6c14e..0000000 --- a/scripts/start_game.gd +++ /dev/null @@ -1,15 +0,0 @@ -extends Panel - -onready var city_name = $Container/CityNameEdit -onready var mayor_name = $Container/MayorNameEdit -onready var budget = $Container/BudgetMenu - -func _ready(): - city_name.text = SimData.city_name - mayor_name.text = SimData.mayor_name - -func _on_CreateBtn_pressed(): - SimData.city_name = city_name.text - SimData.mayor_name = mayor_name.text - - get_tree().change_scene("res://scenes/Game.tscn") diff --git a/scripts/tax_window.gd b/scripts/tax_window.gd deleted file mode 100644 index 3843f20..0000000 --- a/scripts/tax_window.gd +++ /dev/null @@ -1,42 +0,0 @@ -extends WindowDialog - -onready var res_slider = $TaxSlidersCtr/ResCtr/ResSlider -onready var com_slider = $TaxSlidersCtr/ComCtr/ComSlider -onready var ind_slider = $TaxSlidersCtr/IndCtr/IndSlider - -onready var res_rate = $PrecentCtr/ResPctLbl -onready var com_rate = $PrecentCtr/ComPctLbl -onready var ind_rate = $PrecentCtr/IndPctLbl - -onready var annual_income = $IncomeCtr/IcnomeLbl - -func _ready(): - if ZoneData.res_tax >= 0: - res_slider.value = ZoneData.res_tax - res_rate.text = str(ZoneData.res_tax) + "%" - - if ZoneData.res_tax >= 0: - com_slider.value = ZoneData.comm_tax - com_rate.text = str(ZoneData.comm_tax) + "%" - - if ZoneData.indust_tax >= 0: - ind_slider.value = ZoneData.indust_tax - ind_rate.text = str(ZoneData.indust_tax) + "%" - -func _process(delta): - var total_income = int(ZoneData.res_income + ZoneData.comm_income + ZoneData.ind_income) - - if SimTime.prev_month < SimTime.month and total_income > 1: - annual_income.text = str(total_income) + "/mo" - -func _on_ResSlider_value_changed(value): - ZoneData.res_tax = int(value) - res_rate.text = str(value) + "%" - -func _on_ComSlider_value_changed(value): - ZoneData.comm_tax = int(value) - com_rate.text = str(value) + "%" - -func _on_IndSlider_value_changed(value): - ZoneData.indust_tax = int(value) - ind_rate.text = str(value) + "%" diff --git a/scripts/ticker.gd b/scripts/ticker.gd deleted file mode 100644 index 1c99bdc..0000000 --- a/scripts/ticker.gd +++ /dev/null @@ -1,123 +0,0 @@ -extends Control - -#const TICKER_PATH = "res://json/ticker/" -#const FNN_LOGO = "res://assets/ticker/fnn.png" -#const CONFIG_FILE = "config.json" -# -#onready var ticker_text = $Status/NewsBtn -#onready var ticker_box = $Windows/NewsWindow/News -#onready var ticker_window = $Windows/NewsWindow -# -#var news_file: String = "" -#var rng = RandomNumberGenerator.new() -#var all_news: Array = [] -#var speices: Array = [ -# "Cat", -# "Fennec", -# "Fox" -#] -# -#var json_files: Array = [] -# -#func _load_json(): -# var file = File.new() -# if file.file_exists(news_file): -# file.open(news_file, file.READ) -# var result = parse_json(file.get_as_text()) -# return result -# -#func _index_news(): -# var news = _load_json() -# all_news.clear() -# all_news = news["ticker"] -# randomize() -# all_news.shuffle() -# -#func _ready(): -# ticker_window.window_title = JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "outlet") -# -# _randomize_news(json_files) - -#func _process(delta): -# var prev_json_Files = json_files -# -# var city_life = [ -# "citylife.json", -# "kittykibble.json", -# "international.json", -# "citylife.json" -# ] -# -# if _array_check(city_life, json_files): -# match SimData.has_power: -# true: -# prev_json_Files = json_files -# for files in city_life: -# json_files.append(files) -# -# false: -# prev_json_Files = json_files -# for files in city_life: -# json_files.append(files) - -#func _array_check(list1, list2): -# for item in list1: -# if item in list2: -# return true -# -# return false -# -#func _start_alert(message): -## if ticker_text.items.size() > 1: -## ticker_text.clear() -## -## SimData.on_alert = true -## news_file = str(TICKER_PATH + "ticker_alerts.json") -## ticker_text.add_item(all_news) -# -# pass -# -#func _randomize_news(files: Array): -# if all_news == null: -# json_files = JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "ticker_files") -# -# for file in files: -# news_file = str(TICKER_PATH + file) -# _load_json() -# _index_news() -# -# rng.randomize() -# randomize() -# files.shuffle() -# -# var news_range = rng.randi_range(0, all_news.size() - 1) -# var news_text: String = all_news[news_range] -# -# if "[competing_outlet]" in news_text: -# news_text = news_text.replace("[competing_outlet]", JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "competing_outlet")) -# -# if "[outlet]" in news_text: -# news_text = news_text.replace("[outlet]", JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "outlet")) -# -# if "[species]" in news_text: -# speices.shuffle() -# var speices_range = rng.randi_range(speices.size() - 1) -# news_text = news_text.replace("[species]", speices[speices_range]) -# -# if "[city]" in news_text: -# news_text = news_text.replace("[city]", SimData.city_name) -# -# if "[mayor]" in news_text: -# news_text = news_text.replace("[mayor]", SimData.mayor_name) -# -# # Prevent stack overflaw -# if ticker_box.items.size() > 10: -# ticker_box.clear() -# -# _randomize_news(json_files) -# _add_news(news_text) -# -#func _add_news(news_item): -# ticker_text.text = news_item -# ticker_box.add_item(news_item) -# diff --git a/scripts/toolbar.gd b/scripts/toolbar.gd deleted file mode 100644 index b531a98..0000000 --- a/scripts/toolbar.gd +++ /dev/null @@ -1,4 +0,0 @@ -extends Panel - - - diff --git a/scripts/window3d.gd b/scripts/window3d.gd deleted file mode 100644 index bcd1976..0000000 --- a/scripts/window3d.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends Spatial - -onready var node_viewport = $Viewport -onready var node_quad = $Quad -onready var node_area = $Quad/Area diff --git a/scripts/windows.gd b/scripts/windows.gd deleted file mode 100644 index c7b6dcd..0000000 --- a/scripts/windows.gd +++ /dev/null @@ -1,29 +0,0 @@ -extends Control - -onready var debug_console = $Console -onready var tax_window = $TaxWindow -onready var advsior_meet_window = $AdvisorMeet -onready var tools_window = $ToolsWindow - -onready var verLabel = $VersionLbl - -func _ready(): - # To get version string - var version = ProjectSettings.get_setting("application/config/version") - # To get build number - var build = ProjectSettings.get_setting("application/config/build") - - verLabel.text = version + " (Build " + str(build) + ")" - - SimData.city_name = SimData.city_name.capitalize() - SimData.mayor_name = SimData.mayor_name.capitalize() - - SimEvents.emit_signal("advisor_message", SimData.Advisors.CITY_PLANNER, 0) - - SimEvents.connect("send_alert", self, "_start_alert") - SimEvents.connect("rotate_news", self, "_rotate_news") - -func _process(delta): - if Input.is_action_pressed("ui_cheats"): - debug_console.show() -