mirror of
https://github.com/tonytins/dressupzack
synced 2025-05-05 13:34:48 -04:00
Upgrade to Godot 4
This is the start of a major rewrite of the game, using varies add-ons whenever possible instead of reinventing the wheel. Not that it wasn't a good learning experience, but, yeah, glad Godot 4 is finally here.
This commit is contained in:
parent
25257f722d
commit
a1bd301c95
233 changed files with 6786 additions and 3446 deletions
27
.gitignore
vendored
27
.gitignore
vendored
|
@ -1,5 +1,6 @@
|
||||||
# Created by https://www.toptal.com/developers/gitignore/api/macos,linux,godot,backup,windows,dotnetcore,executable,monodevelop,visualstudiocode,web
|
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
|
||||||
# Edit at https://www.toptal.com/developers/gitignore?templates=macos,linux,godot,backup,windows,dotnetcore,executable,monodevelop,visualstudiocode,web
|
# 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 ###
|
### Backup ###
|
||||||
*.bak
|
*.bak
|
||||||
|
@ -30,6 +31,8 @@ obj/
|
||||||
*.wsf
|
*.wsf
|
||||||
|
|
||||||
### Godot ###
|
### Godot ###
|
||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
|
||||||
# Godot-specific ignores
|
# Godot-specific ignores
|
||||||
.import/
|
.import/
|
||||||
|
@ -42,6 +45,7 @@ export_presets.cfg
|
||||||
# Mono-specific ignores
|
# Mono-specific ignores
|
||||||
.mono/
|
.mono/
|
||||||
data_*/
|
data_*/
|
||||||
|
mono_crash.*.json
|
||||||
|
|
||||||
### Linux ###
|
### Linux ###
|
||||||
*~
|
*~
|
||||||
|
@ -67,6 +71,7 @@ data_*/
|
||||||
# Icon must end with two \r
|
# Icon must end with two \r
|
||||||
Icon
|
Icon
|
||||||
|
|
||||||
|
|
||||||
# Thumbnails
|
# Thumbnails
|
||||||
._*
|
._*
|
||||||
|
|
||||||
|
@ -86,6 +91,10 @@ Network Trash Folder
|
||||||
Temporary Items
|
Temporary Items
|
||||||
.apdisk
|
.apdisk
|
||||||
|
|
||||||
|
### macOS Patch ###
|
||||||
|
# iCloud generated files
|
||||||
|
*.icloud
|
||||||
|
|
||||||
### MonoDevelop ###
|
### MonoDevelop ###
|
||||||
#User Specific
|
#User Specific
|
||||||
*.userprefs
|
*.userprefs
|
||||||
|
@ -102,11 +111,18 @@ test-results/
|
||||||
!.vscode/tasks.json
|
!.vscode/tasks.json
|
||||||
!.vscode/launch.json
|
!.vscode/launch.json
|
||||||
!.vscode/extensions.json
|
!.vscode/extensions.json
|
||||||
*.code-workspace
|
!.vscode/*.code-snippets
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
.history/
|
||||||
|
|
||||||
|
# Built Visual Studio Code Extensions
|
||||||
|
*.vsix
|
||||||
|
|
||||||
### VisualStudioCode Patch ###
|
### VisualStudioCode Patch ###
|
||||||
# Ignore all local history of files
|
# Ignore all local history of files
|
||||||
.history
|
.history
|
||||||
|
.ionide
|
||||||
|
|
||||||
### Web ###
|
### Web ###
|
||||||
*.asp
|
*.asp
|
||||||
|
@ -149,6 +165,7 @@ $RECYCLE.BIN/
|
||||||
# Windows shortcuts
|
# Windows shortcuts
|
||||||
*.lnk
|
*.lnk
|
||||||
|
|
||||||
# End of https://www.toptal.com/developers/gitignore/api/macos,linux,godot,backup,windows,dotnetcore,executable,monodevelop,visualstudiocode,web
|
# 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
|
|
440
LICENSE
440
LICENSE
|
@ -1,201 +1,339 @@
|
||||||
The Artistic License 2.0
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (c) 2000-2006, The Perl Foundation.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Preamble
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
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.
|
||||||
|
|
||||||
This license establishes the terms under which a given free software
|
When we speak of free software, we are referring to freedom, not
|
||||||
Package may be copied, modified, distributed, and/or redistributed.
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
The intent is that the Copyright Holder maintains some artistic
|
have the freedom to distribute copies of free software (and charge for
|
||||||
control over the development of that Package while still keeping the
|
this service if you wish), that you receive source code or can get it
|
||||||
Package available as open source and free software.
|
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.
|
||||||
|
|
||||||
You are always permitted to make arrangements wholly outside of this
|
To protect your rights, we need to make restrictions that forbid
|
||||||
license directly with the Copyright Holder of a given Package. If the
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
terms of this license do not permit the full use that you propose to
|
These restrictions translate to certain responsibilities for you if you
|
||||||
make of the Package, you should contact the Copyright Holder and seek
|
distribute copies of the software, or if you modify it.
|
||||||
a different licensing arrangement.
|
|
||||||
|
|
||||||
Definitions
|
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.
|
||||||
|
|
||||||
"Copyright Holder" means the individual(s) or organization(s)
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
named in the copyright notice for the entire Package.
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
"Contributor" means any party that has contributed code or other
|
Also, for each author's protection and ours, we want to make certain
|
||||||
material to the Package, in accordance with the Copyright Holder's
|
that everyone understands that there is no warranty for this free
|
||||||
procedures.
|
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.
|
||||||
|
|
||||||
"You" and "your" means any person who would like to copy,
|
Finally, any free program is threatened constantly by software
|
||||||
distribute, or modify the Package.
|
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.
|
||||||
|
|
||||||
"Package" means the collection of files distributed by the
|
The precise terms and conditions for copying, distribution and
|
||||||
Copyright Holder, and derivatives of that collection and/or of
|
modification follow.
|
||||||
those files. A given Package may consist of either the Standard
|
|
||||||
Version, or a Modified Version.
|
|
||||||
|
|
||||||
"Distribute" means providing a copy of the Package or making it
|
GNU GENERAL PUBLIC LICENSE
|
||||||
accessible to anyone else, or in the case of a company or
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
organization, to others outside of your company or organization.
|
|
||||||
|
|
||||||
"Distributor Fee" means any fee that you charge for Distributing
|
0. This License applies to any program or other work which contains
|
||||||
this Package or providing support for this Package to another
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
party. It does not mean licensing fees.
|
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".
|
||||||
|
|
||||||
"Standard Version" refers to the Package if it has not been
|
Activities other than copying, distribution and modification are not
|
||||||
modified, or has been modified only in ways explicitly requested
|
covered by this License; they are outside its scope. The act of
|
||||||
by the Copyright Holder.
|
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.
|
||||||
|
|
||||||
"Modified Version" means the Package, if it has been changed, and
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
such changes were not explicitly requested by the Copyright
|
source code as you receive it, in any medium, provided that you
|
||||||
Holder.
|
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.
|
||||||
|
|
||||||
"Original License" means this Artistic License as Distributed with
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
the Standard Version of the Package, in its current version or as
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
it may be modified by The Perl Foundation in the future.
|
|
||||||
|
|
||||||
"Source" form means the source code, documentation source, and
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
configuration files for the Package.
|
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:
|
||||||
|
|
||||||
"Compiled" form means the compiled bytecode, object code, binary,
|
a) You must cause the modified files to carry prominent notices
|
||||||
or any other form resulting from mechanical transformation or
|
stating that you changed the files and the date of any change.
|
||||||
translation of the Source form.
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
Permission for Use and Modification Without Distribution
|
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.)
|
||||||
|
|
||||||
(1) You are permitted to use the Standard Version and create and use
|
These requirements apply to the modified work as a whole. If
|
||||||
Modified Versions for any purpose without restriction, provided that
|
identifiable sections of that work are not derived from the Program,
|
||||||
you do not Distribute the Modified Version.
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
Permissions for Redistribution of the Standard Version
|
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.
|
||||||
|
|
||||||
(2) You may Distribute verbatim copies of the Source form of the
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
Standard Version of this Package in any medium without restriction,
|
under Section 2) in object code or executable form under the terms of
|
||||||
either gratis or for a Distributor Fee, provided that you duplicate
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
all of the original copyright notices and associated disclaimers. At
|
|
||||||
your discretion, such verbatim copies may or may not include a
|
|
||||||
Compiled form of the Package.
|
|
||||||
|
|
||||||
(3) You may apply any bug fixes, portability changes, and other
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
modifications made available from the Copyright Holder. The resulting
|
source code, which must be distributed under the terms of Sections
|
||||||
Package will still be considered the Standard Version, and as such
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
will be subject to the Original License.
|
|
||||||
|
|
||||||
|
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,
|
||||||
|
|
||||||
Distribution of Modified Versions of the Package as Source
|
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.)
|
||||||
|
|
||||||
(4) You may Distribute your Modified Version as Source (either gratis
|
The source code for a work means the preferred form of the work for
|
||||||
or for a Distributor Fee, and with or without a Compiled form of the
|
making modifications to it. For an executable work, complete source
|
||||||
Modified Version) provided that you clearly document how it differs
|
code means all the source code for all modules it contains, plus any
|
||||||
from the Standard Version, including, but not limited to, documenting
|
associated interface definition files, plus the scripts used to
|
||||||
any non-standard features, executables, or modules, and provided that
|
control compilation and installation of the executable. However, as a
|
||||||
you do at least ONE of the following:
|
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.
|
||||||
|
|
||||||
(a) make the Modified Version available to the Copyright Holder
|
If distribution of executable or object code is made by offering
|
||||||
of the Standard Version, under the Original License, so that the
|
access to copy from a designated place, then offering equivalent
|
||||||
Copyright Holder may include your modifications in the Standard
|
access to copy the source code from the same place counts as
|
||||||
Version.
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
(b) ensure that installation of your Modified Version does not
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
prevent the user installing or running the Standard Version. In
|
except as expressly provided under this License. Any attempt
|
||||||
addition, the Modified Version must bear a name that is different
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
from the name of the Standard Version.
|
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.
|
||||||
|
|
||||||
(c) allow anyone who receives a copy of the Modified Version to
|
5. You are not required to accept this License, since you have not
|
||||||
make the Source form of the Modified Version available to others
|
signed it. However, nothing else grants you permission to modify or
|
||||||
under
|
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.
|
||||||
|
|
||||||
(i) the Original License or
|
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.
|
||||||
|
|
||||||
(ii) a license that permits the licensee to freely copy,
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
modify and redistribute the Modified Version using the same
|
infringement or for any other reason (not limited to patent issues),
|
||||||
licensing terms that apply to the copy that the licensee
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
received, and requires that the Source form of the Modified
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
Version, and of any works derived from it, be made freely
|
excuse you from the conditions of this License. If you cannot
|
||||||
available in that license fees are prohibited but Distributor
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
Fees are allowed.
|
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.
|
||||||
|
|
||||||
Distribution of Compiled Forms of the Standard Version
|
It is not the purpose of this section to induce you to infringe any
|
||||||
or Modified Versions without the Source
|
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.
|
||||||
|
|
||||||
(5) You may Distribute Compiled forms of the Standard Version without
|
This section is intended to make thoroughly clear what is believed to
|
||||||
the Source, provided that you include complete instructions on how to
|
be a consequence of the rest of this License.
|
||||||
get the Source of the Standard Version. Such instructions must be
|
|
||||||
valid at the time of your distribution. If these instructions, at any
|
|
||||||
time while you are carrying out such distribution, become invalid, you
|
|
||||||
must provide new instructions on demand or cease further distribution.
|
|
||||||
If you provide valid instructions or cease distribution within thirty
|
|
||||||
days after you become aware that the instructions are invalid, then
|
|
||||||
you do not forfeit any of your rights under this license.
|
|
||||||
|
|
||||||
(6) You may Distribute a Modified Version in Compiled form without
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
the Source, provided that you comply with Section 4 with respect to
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
the Source of the Modified Version.
|
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.
|
||||||
|
|
||||||
Aggregating or Linking the Package
|
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.
|
||||||
|
|
||||||
(7) You may aggregate the Package (either the Standard Version or
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
Modified Version) with other packages and Distribute the resulting
|
programs whose distribution conditions are different, write to the author
|
||||||
aggregation provided that you do not charge a licensing fee for the
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
Package. Distributor Fees are permitted, and licensing fees for other
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
components in the aggregation are permitted. The terms of this license
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
apply to the use and Distribution of the Standard or Modified Versions
|
of preserving the free status of all derivatives of our free software and
|
||||||
as included in the aggregation.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
(8) You are permitted to link Modified and Standard Versions with
|
NO WARRANTY
|
||||||
other works, to embed the Package in a larger work of your own, or to
|
|
||||||
build stand-alone binary or bytecode versions of applications that
|
|
||||||
include the Package, and Distribute the result without restriction,
|
|
||||||
provided the result does not expose a direct interface to the Package.
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
Items That are Not Considered Part of a Modified Version
|
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.
|
||||||
|
|
||||||
(9) Works (including, but not limited to, modules and scripts) that
|
END OF TERMS AND CONDITIONS
|
||||||
merely extend or make use of the Package, do not, by themselves, cause
|
|
||||||
the Package to be a Modified Version. In addition, such works are not
|
|
||||||
considered parts of the Package itself, and are not subject to the
|
|
||||||
terms of this license.
|
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
General Provisions
|
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.
|
||||||
|
|
||||||
(10) Any use, modification, and distribution of the Standard or
|
To do so, attach the following notices to the program. It is safest
|
||||||
Modified Versions is governed by this Artistic License. By using,
|
to attach them to the start of each source file to most effectively
|
||||||
modifying or distributing the Package, you accept this license. Do not
|
convey the exclusion of warranty; and each file should have at least
|
||||||
use, modify, or distribute the Package, if you do not accept this
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
license.
|
|
||||||
|
|
||||||
(11) If your Modified Version has been derived from a Modified
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
Version made by someone other than you, you are nevertheless required
|
Copyright (C) 2023 Tony Bark
|
||||||
to ensure that your Modified Version complies with the requirements of
|
|
||||||
this license.
|
|
||||||
|
|
||||||
(12) This license does not grant you the right to use any trademark,
|
This program is free software; you can redistribute it and/or modify
|
||||||
service mark, tradename, or logo of the Copyright Holder.
|
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.
|
||||||
|
|
||||||
(13) This license includes the non-exclusive, worldwide,
|
This program is distributed in the hope that it will be useful,
|
||||||
free-of-charge patent license to make, have made, use, offer to sell,
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
sell, import and otherwise transfer the Package with respect to any
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
patent claims licensable by the Copyright Holder that are necessarily
|
GNU General Public License for more details.
|
||||||
infringed by the Package. If you institute patent litigation
|
|
||||||
(including a cross-claim or counterclaim) against any party alleging
|
|
||||||
that the Package constitutes direct or contributory patent
|
|
||||||
infringement, then this Artistic License to you shall terminate on the
|
|
||||||
date that such litigation is filed.
|
|
||||||
|
|
||||||
(14) Disclaimer of Warranty:
|
You should have received a copy of the GNU General Public License along
|
||||||
THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
|
|
||||||
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
|
|
||||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
If the program is interactive, make it output a short notice like this
|
||||||
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
|
when it starts in an interactive mode:
|
||||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 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.
|
||||||
|
|
BIN
addons/SpritesheetGenerator/Checker.png
Normal file
BIN
addons/SpritesheetGenerator/Checker.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 913 B |
34
addons/SpritesheetGenerator/Checker.png.import
Normal file
34
addons/SpritesheetGenerator/Checker.png.import
Normal file
|
@ -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
|
13
addons/SpritesheetGenerator/SpriteSheetGenerator.gd
Normal file
13
addons/SpritesheetGenerator/SpriteSheetGenerator.gd
Normal file
|
@ -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")
|
77
addons/SpritesheetGenerator/SpritesheetFrame.tscn
Normal file
77
addons/SpritesheetGenerator/SpritesheetFrame.tscn
Normal file
|
@ -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
|
714
addons/SpritesheetGenerator/SpritesheetGenerator.tscn
Normal file
714
addons/SpritesheetGenerator/SpritesheetGenerator.tscn
Normal file
|
@ -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"]
|
7
addons/SpritesheetGenerator/plugin.cfg
Normal file
7
addons/SpritesheetGenerator/plugin.cfg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[plugin]
|
||||||
|
|
||||||
|
name="Spritesheet Generator"
|
||||||
|
description="Generates cropped spritesheets from multiple images."
|
||||||
|
author="KoBeWi"
|
||||||
|
version="1.2"
|
||||||
|
script="SpriteSheetGenerator.gd"
|
2029
addons/fontawesome/All.gd
Normal file
2029
addons/fontawesome/All.gd
Normal file
File diff suppressed because it is too large
Load diff
44
addons/fontawesome/FontAwesome.gd
Normal file
44
addons/fontawesome/FontAwesome.gd
Normal file
|
@ -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)
|
21
addons/fontawesome/LICENSE.txt
Normal file
21
addons/fontawesome/LICENSE.txt
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
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
|
||||||
|
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.
|
1
addons/fontawesome/flag-solid.svg
Normal file
1
addons/fontawesome/flag-solid.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="flag" class="svg-inline--fa fa-flag fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16"><path stroke="black" stroke-width="2" fill="#a5efac" d="M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"></path></svg>
|
After Width: | Height: | Size: 806 B |
37
addons/fontawesome/flag-solid.svg.import
Normal file
37
addons/fontawesome/flag-solid.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c8xladl5cn8xy"
|
||||||
|
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
|
165
addons/fontawesome/fonts/LICENSE.txt
Normal file
165
addons/fontawesome/fonts/LICENSE.txt
Normal file
|
@ -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.**
|
BIN
addons/fontawesome/fonts/fa-brands-400.woff2
Normal file
BIN
addons/fontawesome/fonts/fa-brands-400.woff2
Normal file
Binary file not shown.
33
addons/fontawesome/fonts/fa-brands-400.woff2.import
Normal file
33
addons/fontawesome/fonts/fa-brands-400.woff2.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://c3g4ra8y40her"
|
||||||
|
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={}
|
BIN
addons/fontawesome/fonts/fa-regular-400.woff2
Normal file
BIN
addons/fontawesome/fonts/fa-regular-400.woff2
Normal file
Binary file not shown.
33
addons/fontawesome/fonts/fa-regular-400.woff2.import
Normal file
33
addons/fontawesome/fonts/fa-regular-400.woff2.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://278oy288d0cs"
|
||||||
|
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={}
|
BIN
addons/fontawesome/fonts/fa-solid-900.woff2
Normal file
BIN
addons/fontawesome/fonts/fa-solid-900.woff2
Normal file
Binary file not shown.
33
addons/fontawesome/fonts/fa-solid-900.woff2.import
Normal file
33
addons/fontawesome/fonts/fa-solid-900.woff2.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cnddkn05b5fj"
|
||||||
|
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={}
|
6
addons/fontawesome/plugin.cfg
Normal file
6
addons/fontawesome/plugin.cfg
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[plugin]
|
||||||
|
name="FontAwesome"
|
||||||
|
description="FontAwesome 6 Icons"
|
||||||
|
author="LetterN"
|
||||||
|
version="6.3.0"
|
||||||
|
script="plugin.gd"
|
8
addons/fontawesome/plugin.gd
Normal file
8
addons/fontawesome/plugin.gd
Normal file
|
@ -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")
|
|
@ -1,14 +1,7 @@
|
||||||
[gd_resource type="Environment" load_steps=2 format=2]
|
[gd_resource type="Environment" load_steps=2 format=3 uid="uid://b5rqng8jpnn0u"]
|
||||||
|
|
||||||
[sub_resource type="ProceduralSky" id=1]
|
[sub_resource type="Sky" id="1"]
|
||||||
sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 )
|
|
||||||
sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 )
|
|
||||||
sky_curve = 0.25
|
|
||||||
ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 )
|
|
||||||
ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 )
|
|
||||||
ground_curve = 0.01
|
|
||||||
sun_energy = 16.0
|
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
background_mode = 2
|
background_mode = 2
|
||||||
background_sky = SubResource( 1 )
|
sky = SubResource("1")
|
||||||
|
|
33
fonts/kenny_bold.ttf.import
Normal file
33
fonts/kenny_bold.ttf.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bjn1uniciqgyt"
|
||||||
|
path="res://.godot/imported/kenny_bold.ttf-d1784f8630ea59e8453c826cae09870d.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://fonts/kenny_bold.ttf"
|
||||||
|
dest_files=["res://.godot/imported/kenny_bold.ttf-d1784f8630ea59e8453c826cae09870d.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={}
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_resource type="DynamicFont" load_steps=2 format=2]
|
[gd_resource type="FontFile" load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://fonts/kenny_bold.ttf" type="DynamicFontData" id=1]
|
[ext_resource path="res://fonts/kenny_bold.ttf" type="FontFile" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
use_mipmaps = true
|
use_mipmaps = true
|
||||||
|
|
33
fonts/kenny_pixel.ttf.import
Normal file
33
fonts/kenny_pixel.ttf.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://dvdce1h1xyhia"
|
||||||
|
path="res://.godot/imported/kenny_pixel.ttf-6bad74cd04c8372d95fe493c05a6434f.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://fonts/kenny_pixel.ttf"
|
||||||
|
dest_files=["res://.godot/imported/kenny_pixel.ttf-6bad74cd04c8372d95fe493c05a6434f.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={}
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_resource type="DynamicFont" load_steps=2 format=2]
|
[gd_resource type="FontFile" load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://fonts/kenny_pixel.ttf" type="DynamicFontData" id=1]
|
[ext_resource path="res://fonts/kenny_pixel.ttf" type="FontFile" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
size = 25
|
size = 25
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
uid="uid://dq8pqlkve05eu"
|
||||||
|
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://icon.png"
|
source_file="res://icon.png"
|
||||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/icon.svg-218a8f2b3041327d8a5756f3a245f83b.stex"
|
uid="uid://c5blhm52nlhyp"
|
||||||
|
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,27 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://icon.svg"
|
source_file="res://icon.svg"
|
||||||
dest_files=[ "res://.import/icon.svg-218a8f2b3041327d8a5756f3a245f83b.stex" ]
|
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|
|
@ -2,13 +2,14 @@
|
||||||
|
|
||||||
importer="csv_translation"
|
importer="csv_translation"
|
||||||
type="Translation"
|
type="Translation"
|
||||||
|
uid="uid://bdu3ytca7lxbp"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
files=[ "res://lang/local.en.translation", "res://lang/local.sv.translation" ]
|
files=["res://lang/local.en.translation", "res://lang/local.sv.translation"]
|
||||||
|
|
||||||
source_file="res://lang/local.csv"
|
source_file="res://lang/local.csv"
|
||||||
dest_files=[ "res://lang/local.en.translation", "res://lang/local.sv.translation" ]
|
dest_files=["res://lang/local.en.translation", "res://lang/local.sv.translation"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -6,19 +6,15 @@
|
||||||
; [section] ; section goes between []
|
; [section] ; section goes between []
|
||||||
; param=value ; assign values to parameters
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
config_version=4
|
config_version=5
|
||||||
|
|
||||||
_global_script_classes=[ ]
|
|
||||||
_global_script_class_icons={
|
|
||||||
}
|
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Tony's Dress Up"
|
config/name="Zack's Dress Up"
|
||||||
run/main_scene="res://scenes/game.tscn"
|
run/main_scene="res://scenes/dress_up.tscn"
|
||||||
config/use_custom_user_dir=true
|
config/use_custom_user_dir=true
|
||||||
boot_splash/image="res://icon.png"
|
config/features=PackedStringArray("4.0")
|
||||||
boot_splash/bg_color=Color( 0.8, 0.8, 0.4, 1 )
|
boot_splash/bg_color=Color(0.8, 0.8, 0.4, 1)
|
||||||
config/icon="res://icon.png"
|
config/icon="res://icon.png"
|
||||||
config/macos_native_icon="res://icon.icns"
|
config/macos_native_icon="res://icon.icns"
|
||||||
config/windows_native_icon="res://icon.ico"
|
config/windows_native_icon="res://icon.ico"
|
||||||
|
@ -35,12 +31,14 @@ gdscript/completion/autocomplete_setters_and_getters=true
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/width=800
|
window/size/viewport_width=800
|
||||||
window/size/height=500
|
window/size/viewport_height=500
|
||||||
window/size/resizable=false
|
window/size/resizable=false
|
||||||
window/energy_saving/keep_screen_on=false
|
window/energy_saving/keep_screen_on=false
|
||||||
window/stretch/mode="2d"
|
|
||||||
window/stretch/aspect="keep"
|
[editor_plugins]
|
||||||
|
|
||||||
|
enabled=PackedStringArray("res://addons/SpritesheetGenerator/plugin.cfg", "res://addons/fontawesome/plugin.cfg")
|
||||||
|
|
||||||
[importer_defaults]
|
[importer_defaults]
|
||||||
|
|
||||||
|
@ -73,28 +71,21 @@ ogg_vorbis={
|
||||||
|
|
||||||
ui_pause={
|
ui_pause={
|
||||||
"deadzone": 0.5,
|
"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":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
|
||||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"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":false,"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":false,"meta":true,"command":true,"pressed":false,"scancode":88,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[locale]
|
[locale]
|
||||||
|
|
||||||
locale_filter=[ 1, [ "en", "sv" ] ]
|
locale_filter=[1, ["en", "sv"]]
|
||||||
translations=PoolStringArray( "res://lang/local.en.translation", "res://lang/local.sv.translation" )
|
translations=PackedStringArray("res://lang/local.en.translation", "res://lang/local.sv.translation")
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
environment/defaults/default_environment="res://default_env.tres"
|
||||||
quality/driver/driver_name="GLES2"
|
quality/driver/driver_name="GLES2"
|
||||||
quality/intended_usage/framebuffer_allocation=0
|
quality/intended_usage/framebuffer_allocation=0
|
||||||
quality/intended_usage/framebuffer_allocation.mobile=0
|
quality/intended_usage/framebuffer_allocation.mobile=0
|
||||||
2d/snapping/use_gpu_pixel_snap=true
|
2d/snapping/use_gpu_pixel_snap=true
|
||||||
vram_compression/import_etc=true
|
vram_compression/import_etc=true
|
||||||
environment/default_environment="res://default_env.tres"
|
|
||||||
quality/2d/use_pixel_snap=true
|
quality/2d/use_pixel_snap=true
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/ui/blue_button10.png" type="Texture" id=1]
|
[ext_resource path="res://sprites/ui/blue_button10.png" type="Texture2D" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/ui/blue_button03.png" type="Texture" id=1]
|
[ext_resource path="res://sprites/ui/blue_button03.png" type="Texture2D" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/ui/blue_button00.png" type="Texture" id=1]
|
[ext_resource path="res://sprites/ui/blue_button00.png" type="Texture2D" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/ui/grey_panel.png" type="Texture" id=1]
|
[ext_resource path="res://sprites/ui/grey_panel.png" type="Texture2D" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
|
|
@ -1,149 +0,0 @@
|
||||||
[gd_scene load_steps=33 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://sprites/character/shadow.svg" type="Texture" id=1]
|
|
||||||
[ext_resource path="res://sprites/character/tail/tail0.svg" type="Texture" id=2]
|
|
||||||
[ext_resource path="res://sprites/character/tail/tail1.svg" type="Texture" id=3]
|
|
||||||
[ext_resource path="res://sprites/character/tail/tail2.svg" type="Texture" id=4]
|
|
||||||
[ext_resource path="res://sprites/clothes/owo_censor.svg" type="Texture" id=5]
|
|
||||||
[ext_resource path="res://sprites/character/eyes/eyes1.png" type="Texture" id=6]
|
|
||||||
[ext_resource path="res://sprites/character/eyes/eyes2.png" type="Texture" id=7]
|
|
||||||
[ext_resource path="res://sprites/character/eyes/eyes3.png" type="Texture" id=8]
|
|
||||||
[ext_resource path="res://sprites/character/eyes/eyes4.png" type="Texture" id=9]
|
|
||||||
[ext_resource path="res://sprites/character/eyes/eyes5.png" type="Texture" id=10]
|
|
||||||
[ext_resource path="res://sprites/character/eyes/eyes6.png" type="Texture" id=11]
|
|
||||||
[ext_resource path="res://sprites/character/eyes/eyes7.png" type="Texture" id=12]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth.png" type="Texture" id=13]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth2.png" type="Texture" id=14]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth3.png" type="Texture" id=15]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth4.png" type="Texture" id=16]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth5.png" type="Texture" id=17]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth6.png" type="Texture" id=18]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth7.png" type="Texture" id=19]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth8.png" type="Texture" id=20]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth9.png" type="Texture" id=21]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth10.png" type="Texture" id=22]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth12.png" type="Texture" id=23]
|
|
||||||
[ext_resource path="res://sounds/select_006.ogg" type="AudioStream" id=24]
|
|
||||||
[ext_resource path="res://sprites/character/character_base_top.svg" type="Texture" id=25]
|
|
||||||
[ext_resource path="res://sprites/clothes/blank_top.png" type="Texture" id=26]
|
|
||||||
[ext_resource path="res://sprites/character/character_base_head.svg" type="Texture" id=27]
|
|
||||||
[ext_resource path="res://sprites/character/mouth/mouth11.png" type="Texture" id=28]
|
|
||||||
[ext_resource path="res://scripts/character.gd" type="Script" id=29]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=1]
|
|
||||||
animations = [ {
|
|
||||||
"frames": [ ExtResource( 2 ), ExtResource( 3 ), ExtResource( 4 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "default",
|
|
||||||
"speed": 2.0
|
|
||||||
} ]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=2]
|
|
||||||
animations = [ {
|
|
||||||
"frames": [ ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "default",
|
|
||||||
"speed": 2.0
|
|
||||||
} ]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=3]
|
|
||||||
animations = [ {
|
|
||||||
"frames": [ ExtResource( 13 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 19 ), ExtResource( 20 ), ExtResource( 21 ), ExtResource( 22 ), ExtResource( 28 ), ExtResource( 23 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "default",
|
|
||||||
"speed": 2.0
|
|
||||||
} ]
|
|
||||||
|
|
||||||
[node name="Character" type="Node2D"]
|
|
||||||
position = Vector2( -19, -92 )
|
|
||||||
script = ExtResource( 29 )
|
|
||||||
|
|
||||||
[node name="Click" type="AudioStreamPlayer" parent="."]
|
|
||||||
stream = ExtResource( 24 )
|
|
||||||
|
|
||||||
[node name="Shadow" type="Sprite" parent="."]
|
|
||||||
position = Vector2( 4.84271, 244.714 )
|
|
||||||
texture = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="Body" type="Node2D" parent="."]
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_lock_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Tail" type="AnimatedSprite" parent="Body"]
|
|
||||||
position = Vector2( -33.7592, 99.4079 )
|
|
||||||
scale = Vector2( 0.927713, 1 )
|
|
||||||
frames = SubResource( 1 )
|
|
||||||
playing = true
|
|
||||||
|
|
||||||
[node name="Legs" type="Sprite" parent="Body"]
|
|
||||||
position = Vector2( 1.47027, 191.868 )
|
|
||||||
texture = ExtResource( 5 )
|
|
||||||
|
|
||||||
[node name="Top" type="Sprite" parent="Body"]
|
|
||||||
position = Vector2( 7, 78 )
|
|
||||||
texture = ExtResource( 25 )
|
|
||||||
|
|
||||||
[node name="Head" type="Sprite" parent="Body"]
|
|
||||||
position = Vector2( 10.6805, -25.1047 )
|
|
||||||
texture = ExtResource( 27 )
|
|
||||||
|
|
||||||
[node name="Eyes" type="AnimatedSprite" parent="Body/Head"]
|
|
||||||
position = Vector2( 17.6857, 4.22147 )
|
|
||||||
frames = SubResource( 2 )
|
|
||||||
frame = 4
|
|
||||||
playing = true
|
|
||||||
|
|
||||||
[node name="Mouth" type="AnimatedSprite" parent="Body/Head"]
|
|
||||||
position = Vector2( 38.1195, 8.68453 )
|
|
||||||
frames = SubResource( 3 )
|
|
||||||
frame = 2
|
|
||||||
playing = true
|
|
||||||
|
|
||||||
[node name="Accessory" type="Sprite" parent="Body"]
|
|
||||||
position = Vector2( 9.54095, 73.0832 )
|
|
||||||
texture = ExtResource( 26 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_lock_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Controls" type="CanvasLayer" parent="."]
|
|
||||||
|
|
||||||
[node name="Container" type="Control" parent="Controls"]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = -19.0
|
|
||||||
margin_top = -92.0
|
|
||||||
margin_right = -19.0
|
|
||||||
margin_bottom = -92.0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_lock_": true,
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="ExportWin" type="FileDialog" parent="Controls/Container"]
|
|
||||||
anchor_left = 0.215
|
|
||||||
anchor_top = 0.21
|
|
||||||
anchor_right = 0.785
|
|
||||||
anchor_bottom = 0.79
|
|
||||||
window_title = "Export"
|
|
||||||
access = 1
|
|
||||||
current_dir = "user://Users/tonytins/Projects/tonysdressup"
|
|
||||||
current_path = "user://Users/tonytins/Projects/tonysdressup/"
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="ImportWin" type="FileDialog" parent="Controls/Container"]
|
|
||||||
anchor_left = 0.215
|
|
||||||
anchor_top = 0.21
|
|
||||||
anchor_right = 0.785
|
|
||||||
anchor_bottom = 0.79
|
|
||||||
window_title = "Open a File"
|
|
||||||
mode = 0
|
|
||||||
access = 1
|
|
||||||
current_dir = "user://Users/tonytins/Projects/tonysdressup"
|
|
||||||
current_path = "user://Users/tonytins/Projects/tonysdressup/"
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://sprites/symbols/sync.svg" type="Texture" id=1]
|
|
||||||
[ext_resource path="res://sprites/pawprint-logo.svg" type="Texture" id=2]
|
|
||||||
[ext_resource path="res://scripts/news_window.gd" type="Script" id=3]
|
|
||||||
|
|
||||||
[node name="NewsWin" type="WindowDialog"]
|
|
||||||
anchor_left = 0.15375
|
|
||||||
anchor_top = 0.144
|
|
||||||
anchor_right = 0.84625
|
|
||||||
anchor_bottom = 0.856
|
|
||||||
rect_min_size = Vector2( 540, 340 )
|
|
||||||
window_title = "News"
|
|
||||||
script = ExtResource( 3 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="News" type="ItemList" parent="."]
|
|
||||||
anchor_top = 0.179775
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_top = -3.8147e-06
|
|
||||||
max_text_lines = 5
|
|
||||||
auto_height = true
|
|
||||||
same_column_width = true
|
|
||||||
icon_mode = 0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="NewsBtns" type="HBoxContainer" parent="."]
|
|
||||||
anchor_top = 0.0280899
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 0.13764
|
|
||||||
margin_top = 0.748672
|
|
||||||
margin_bottom = 0.748837
|
|
||||||
custom_constants/separation = 30
|
|
||||||
alignment = 1
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="HTTPRequest" type="HTTPRequest" parent="NewsBtns"]
|
|
||||||
|
|
||||||
[node name="Logo" type="TextureRect" parent="NewsBtns"]
|
|
||||||
margin_left = 79.0
|
|
||||||
margin_right = 367.0
|
|
||||||
margin_bottom = 39.0
|
|
||||||
texture = ExtResource( 2 )
|
|
||||||
stretch_mode = 4
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="VSeparator" type="VSeparator" parent="NewsBtns"]
|
|
||||||
margin_left = 397.0
|
|
||||||
margin_right = 401.0
|
|
||||||
margin_bottom = 39.0
|
|
||||||
|
|
||||||
[node name="SyncBtn" type="Button" parent="NewsBtns"]
|
|
||||||
margin_left = 431.0
|
|
||||||
margin_right = 475.0
|
|
||||||
margin_bottom = 39.0
|
|
||||||
icon = ExtResource( 1 )
|
|
||||||
|
|
||||||
[connection signal="request_completed" from="NewsBtns/HTTPRequest" to="." method="_on_HTTPRequest_request_completed"]
|
|
||||||
[connection signal="pressed" from="NewsBtns/SyncBtn" to="." method="_on_SyncBtn_pressed"]
|
|
|
@ -6,9 +6,9 @@
|
||||||
[node name="baseClothing" type="TextureButton"]
|
[node name="baseClothing" type="TextureButton"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_right = -694.0
|
offset_right = -694.0
|
||||||
margin_bottom = -488.0
|
offset_bottom = -488.0
|
||||||
rect_min_size = Vector2( 106, 112 )
|
custom_minimum_size = Vector2( 106, 112 )
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/accessory_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/accessory_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://sprites/clothes/camera.png" type="Texture" id=2]
|
[ext_resource path="res://sprites/clothes/camera.png" type="Texture2D" id=2]
|
||||||
|
|
||||||
[node name="camera" instance=ExtResource( 1 )]
|
[node name="camera" instance=ExtResource( 1 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 0.0
|
offset_right = 0.0
|
||||||
margin_bottom = 0.0
|
offset_bottom = 0.0
|
||||||
rect_min_size = Vector2( 0, 0 )
|
custom_minimum_size = Vector2( 0, 0 )
|
||||||
texture_normal = ExtResource( 2 )
|
texture_normal = ExtResource( 2 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/beat_up_jeans.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/beat_up_jeans.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="beatUpJeans" instance=ExtResource( 1 )]
|
[node name="beatUpJeans" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/clothes/blue_camo_jeans.svg" type="Texture" id=1]
|
[ext_resource path="res://sprites/clothes/blue_camo_jeans.svg" type="Texture2D" id=1]
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=3]
|
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=3]
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/dj_shorts.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/dj_shorts.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="camoJeans" instance=ExtResource( 1 )]
|
[node name="camoJeans" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/formal_skirt.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/formal_skirt.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="formalSkirt" instance=ExtResource( 1 )]
|
[node name="formalSkirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/jeans.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/jeans.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/blue_skirt.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/blue_skirt.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/clothes/sweat_pants.svg" type="Texture" id=1]
|
[ext_resource path="res://sprites/clothes/sweat_pants.svg" type="Texture2D" id=1]
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=3]
|
[ext_resource path="res://scripts/clothing/bottoms_base.gd" type="Script" id=3]
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/atomic_shirt.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/atomic_shirt.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="atomicShirt" instance=ExtResource( 1 )]
|
[node name="atomicShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/dj_shirt.png" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/dj_shirt.png" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="djShirt" instance=ExtResource( 1 )]
|
[node name="djShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/fullsnack_shirt.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/fullsnack_shirt.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="fullsnackShirt" instance=ExtResource( 1 )]
|
[node name="fullsnackShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/korm_shirt.png" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/korm_shirt.png" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="kormShirt" instance=ExtResource( 1 )]
|
[node name="kormShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/nl_jacket.png" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/nl_jacket.png" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="nlShirt" instance=ExtResource( 1 )]
|
[node name="nlShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/raw_shirt.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/raw_shirt.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/nl_jacket.png" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/nl_jacket.png" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="nlShirt" instance=ExtResource( 1 )]
|
[node name="nlShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/skate_shirt.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/skate_shirt.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="skateShirt" instance=ExtResource( 1 )]
|
[node name="skateShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/train_hoodie.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/train_hoodie.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="trainHoodie" instance=ExtResource( 1 )]
|
[node name="trainHoodie" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/whatsnew_shirt.svg" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/whatsnew_shirt.svg" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="whatsNewShirt" instance=ExtResource( 1 )]
|
[node name="whatsNewShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/clothing/base/clothing_base.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/clothing/tops_base.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://sprites/clothes/z_shirt.png" type="Texture" id=3]
|
[ext_resource path="res://sprites/clothes/z_shirt.png" type="Texture2D" id=3]
|
||||||
|
|
||||||
[node name="zShirt" instance=ExtResource( 1 )]
|
[node name="zShirt" instance=ExtResource( 1 )]
|
||||||
texture_normal = ExtResource( 3 )
|
texture_normal = ExtResource( 3 )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/clothes/briefs.svg" type="Texture" id=1]
|
[ext_resource path="res://sprites/clothes/briefs.svg" type="Texture2D" id=1]
|
||||||
[ext_resource path="res://scenes/clothing/base/undies_base.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://scenes/clothing/base/undies_base.tscn" type="PackedScene" id=2]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/clothes/fundosi.svg" type="Texture" id=1]
|
[ext_resource path="res://sprites/clothes/fundosi.svg" type="Texture2D" id=1]
|
||||||
[ext_resource path="res://scenes/clothing/base/undies_base.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://scenes/clothing/base/undies_base.tscn" type="PackedScene" id=2]
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
[node name="fundosi" instance=ExtResource( 2 )]
|
[node name="fundosi" instance=ExtResource( 2 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 0.0
|
offset_right = 0.0
|
||||||
margin_bottom = 0.0
|
offset_bottom = 0.0
|
||||||
rect_min_size = Vector2( 0, 0 )
|
custom_minimum_size = Vector2( 0, 0 )
|
||||||
texture_normal = ExtResource( 1 )
|
texture_normal = ExtResource( 1 )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://sprites/clothes/z_briefs.svg" type="Texture" id=1]
|
[ext_resource path="res://sprites/clothes/z_briefs.svg" type="Texture2D" id=1]
|
||||||
[ext_resource path="res://scenes/clothing/base/undies_base.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://scenes/clothing/base/undies_base.tscn" type="PackedScene" id=2]
|
||||||
|
|
||||||
|
|
||||||
|
|
89
scenes/dress_up.tscn
Normal file
89
scenes/dress_up.tscn
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
[gd_scene load_steps=12 format=3 uid="uid://cowj1v5ikbbcr"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://33g80p0qnfw4" path="res://sprites/world/background.svg" id="1_mkrgm"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bi7ayrxnn7hex" path="res://sprites/clothes/icrazy_frame.svg" id="2_6ubqe"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dteiup73cqn4o" path="res://sprites/clothes/lights.png" id="3_dv1xm"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://detf8uwimqp3v" path="res://scenes/zack_casey.tscn" id="4_62lrl"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/interface.gd" id="5_2hrl4"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://crwoe1shep3qn" path="res://scenes/wardrobe.tscn" id="6_63h3o"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c6gjshrl66tx" path="res://sprites/symbols/file-upload.svg" id="7_3o5r4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://nm7qfemlongu" path="res://sprites/symbols/file-upload-disabled.svg" id="8_6btbd"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dvwfmf3d8owqa" path="res://sprites/symbols/file-download.svg" id="9_k60o7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bqs56pcfa0uqh" path="res://sprites/symbols/file-download-disabled.svg" id="10_d8wi3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dgwys372lmwvh" path="res://sprites/symbols/trash.svg" id="11_pc3us"]
|
||||||
|
|
||||||
|
[node name="Game" type="Node"]
|
||||||
|
|
||||||
|
[node name="Background" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(504.046, 202.426)
|
||||||
|
texture = ExtResource("1_mkrgm")
|
||||||
|
|
||||||
|
[node name="PictureFrame" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(127.602, 111.895)
|
||||||
|
texture = ExtResource("2_6ubqe")
|
||||||
|
|
||||||
|
[node name="Light3D" type="PointLight2D" parent="PictureFrame"]
|
||||||
|
position = Vector2(35.118, -14.56)
|
||||||
|
texture = ExtResource("3_dv1xm")
|
||||||
|
|
||||||
|
[node name="Character" parent="." instance=ExtResource("4_62lrl")]
|
||||||
|
position = Vector2(141.307, 225.012)
|
||||||
|
|
||||||
|
[node name="Container" type="Control" parent="."]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("5_2hrl4")
|
||||||
|
version = "2"
|
||||||
|
|
||||||
|
[node name="Wardrobe" parent="Container" instance=ExtResource("6_63h3o")]
|
||||||
|
layout_mode = 0
|
||||||
|
anchors_preset = 0
|
||||||
|
anchor_left = 0.33875
|
||||||
|
anchor_top = 0.054
|
||||||
|
anchor_right = 1.05
|
||||||
|
anchor_bottom = 0.9
|
||||||
|
offset_right = 6.10352e-05
|
||||||
|
theme = null
|
||||||
|
|
||||||
|
[node name="CenterBtns" type="CenterContainer" parent="Container"]
|
||||||
|
layout_mode = 0
|
||||||
|
anchor_left = 0.35125
|
||||||
|
anchor_top = 0.78
|
||||||
|
anchor_right = 0.9925
|
||||||
|
anchor_bottom = 0.874
|
||||||
|
|
||||||
|
[node name="ButtonCtr" type="HBoxContainer" parent="Container/CenterBtns"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ExportBtn" type="TextureButton" parent="Container/CenterBtns/ButtonCtr"]
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "Export"
|
||||||
|
texture_normal = ExtResource("7_3o5r4")
|
||||||
|
texture_disabled = ExtResource("8_6btbd")
|
||||||
|
|
||||||
|
[node name="ImportBtn" type="TextureButton" parent="Container/CenterBtns/ButtonCtr"]
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "Import"
|
||||||
|
texture_normal = ExtResource("9_k60o7")
|
||||||
|
texture_disabled = ExtResource("10_d8wi3")
|
||||||
|
|
||||||
|
[node name="ClearBtn" type="TextureButton" parent="Container/CenterBtns/ButtonCtr"]
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "Clear"
|
||||||
|
texture_normal = ExtResource("11_pc3us")
|
||||||
|
|
||||||
|
[node name="VersionLbl" type="Label" parent="Container"]
|
||||||
|
layout_mode = 0
|
||||||
|
anchor_left = 0.88125
|
||||||
|
anchor_top = 0.944
|
||||||
|
anchor_right = 0.9825
|
||||||
|
anchor_bottom = 0.984
|
||||||
|
text = "0.0.0"
|
||||||
|
|
||||||
|
[connection signal="pressed" from="Container/CenterBtns/ButtonCtr/ExportBtn" to="Character" method="_on_SaveBtn_pressed"]
|
||||||
|
[connection signal="pressed" from="Container/CenterBtns/ButtonCtr/ImportBtn" to="Character" method="_on_LoadBtn_pressed"]
|
||||||
|
[connection signal="pressed" from="Container/CenterBtns/ButtonCtr/ClearBtn" to="Character" method="_on_clearBtn_pressed"]
|
130
scenes/game.tscn
130
scenes/game.tscn
|
@ -1,130 +0,0 @@
|
||||||
[gd_scene load_steps=15 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://scenes/Character.tscn" type="PackedScene" id=1]
|
|
||||||
[ext_resource path="res://sprites/world/background.svg" type="Texture" id=2]
|
|
||||||
[ext_resource path="res://sprites/symbols/trash.svg" type="Texture" id=3]
|
|
||||||
[ext_resource path="res://scenes/wardrobe.tscn" type="PackedScene" id=4]
|
|
||||||
[ext_resource path="res://sprites/clothes/icrazy_frame.svg" type="Texture" id=5]
|
|
||||||
[ext_resource path="res://sprites/clothes/lights.png" type="Texture" id=6]
|
|
||||||
[ext_resource path="res://sprites/symbols/file-upload.svg" type="Texture" id=7]
|
|
||||||
[ext_resource path="res://scripts/interface.gd" type="Script" id=8]
|
|
||||||
[ext_resource path="res://sprites/symbols/file-download.svg" type="Texture" id=9]
|
|
||||||
[ext_resource path="res://sprites/symbols/file-upload-disabled.svg" type="Texture" id=10]
|
|
||||||
[ext_resource path="res://sprites/symbols/file-download-disabled.svg" type="Texture" id=11]
|
|
||||||
[ext_resource path="res://sprites/symbols/spinner.svg" type="Texture" id=12]
|
|
||||||
[ext_resource path="res://scripts/spinner.gd" type="Script" id=13]
|
|
||||||
[ext_resource path="res://scenes/NewsWin.tscn" type="PackedScene" id=16]
|
|
||||||
|
|
||||||
[node name="Game" type="Node2D"]
|
|
||||||
|
|
||||||
[node name="Background" type="Sprite" parent="."]
|
|
||||||
position = Vector2( 504.046, 202.426 )
|
|
||||||
texture = ExtResource( 2 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_lock_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="PictureFrame" type="Sprite" parent="."]
|
|
||||||
position = Vector2( 127.602, 111.895 )
|
|
||||||
texture = ExtResource( 5 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Light" type="Light2D" parent="PictureFrame"]
|
|
||||||
position = Vector2( 35.118, -14.56 )
|
|
||||||
texture = ExtResource( 6 )
|
|
||||||
|
|
||||||
[node name="Character" parent="." instance=ExtResource( 1 )]
|
|
||||||
position = Vector2( 141.307, 225.012 )
|
|
||||||
|
|
||||||
[node name="Controls" type="CanvasLayer" parent="."]
|
|
||||||
|
|
||||||
[node name="Container" type="Control" parent="Controls"]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
script = ExtResource( 8 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_lock_": true,
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
version = "1.11"
|
|
||||||
|
|
||||||
[node name="Wardrobe" parent="Controls/Container" instance=ExtResource( 4 )]
|
|
||||||
anchor_left = 0.33875
|
|
||||||
anchor_top = 0.054
|
|
||||||
anchor_right = 1.05
|
|
||||||
anchor_bottom = 0.9
|
|
||||||
margin_right = 6.10352e-05
|
|
||||||
|
|
||||||
[node name="Spinner" type="TextureRect" parent="Controls/Container"]
|
|
||||||
visible = false
|
|
||||||
anchor_left = 0.945785
|
|
||||||
anchor_top = 0.153026
|
|
||||||
anchor_right = 0.985785
|
|
||||||
anchor_bottom = 0.217026
|
|
||||||
texture = ExtResource( 12 )
|
|
||||||
script = ExtResource( 13 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Timer" type="Timer" parent="Controls/Container/Spinner"]
|
|
||||||
wait_time = 2.0
|
|
||||||
|
|
||||||
[node name="CenterBtns" type="CenterContainer" parent="Controls/Container"]
|
|
||||||
anchor_left = 0.35125
|
|
||||||
anchor_top = 0.78
|
|
||||||
anchor_right = 0.9925
|
|
||||||
anchor_bottom = 0.874
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="ButtonCtr" type="HBoxContainer" parent="Controls/Container/CenterBtns"]
|
|
||||||
margin_left = 199.0
|
|
||||||
margin_top = 7.0
|
|
||||||
margin_right = 314.0
|
|
||||||
margin_bottom = 39.0
|
|
||||||
custom_constants/separation = 20
|
|
||||||
|
|
||||||
[node name="ExportBtn" type="TextureButton" parent="Controls/Container/CenterBtns/ButtonCtr"]
|
|
||||||
margin_right = 25.0
|
|
||||||
margin_bottom = 32.0
|
|
||||||
hint_tooltip = "Export"
|
|
||||||
texture_normal = ExtResource( 7 )
|
|
||||||
texture_disabled = ExtResource( 10 )
|
|
||||||
|
|
||||||
[node name="ImportBtn" type="TextureButton" parent="Controls/Container/CenterBtns/ButtonCtr"]
|
|
||||||
margin_left = 45.0
|
|
||||||
margin_right = 70.0
|
|
||||||
margin_bottom = 32.0
|
|
||||||
hint_tooltip = "Import"
|
|
||||||
texture_normal = ExtResource( 9 )
|
|
||||||
texture_disabled = ExtResource( 11 )
|
|
||||||
|
|
||||||
[node name="ClearBtn" type="TextureButton" parent="Controls/Container/CenterBtns/ButtonCtr"]
|
|
||||||
margin_left = 90.0
|
|
||||||
margin_right = 115.0
|
|
||||||
margin_bottom = 32.0
|
|
||||||
hint_tooltip = "Clear"
|
|
||||||
texture_normal = ExtResource( 3 )
|
|
||||||
|
|
||||||
[node name="VersionLbl" type="Label" parent="Controls/Container"]
|
|
||||||
anchor_left = 0.88125
|
|
||||||
anchor_top = 0.944
|
|
||||||
anchor_right = 0.9825
|
|
||||||
anchor_bottom = 0.984
|
|
||||||
text = "0.0.0"
|
|
||||||
align = 2
|
|
||||||
valign = 3
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="NewsWin" parent="Controls/Container" instance=ExtResource( 16 )]
|
|
||||||
|
|
||||||
[connection signal="timeout" from="Controls/Container/Spinner/Timer" to="Controls/Container/Spinner" method="_on_Timer_timeout"]
|
|
||||||
[connection signal="pressed" from="Controls/Container/CenterBtns/ButtonCtr/ExportBtn" to="Character" method="_on_SaveBtn_pressed"]
|
|
||||||
[connection signal="pressed" from="Controls/Container/CenterBtns/ButtonCtr/ImportBtn" to="Character" method="_on_LoadBtn_pressed"]
|
|
||||||
[connection signal="pressed" from="Controls/Container/CenterBtns/ButtonCtr/ClearBtn" to="Character" method="_on_clearBtn_pressed"]
|
|
|
@ -1,214 +1,129 @@
|
||||||
[gd_scene load_steps=18 format=2]
|
[gd_scene load_steps=18 format=3 uid="uid://crwoe1shep3qn"]
|
||||||
|
|
||||||
[ext_resource path="res://scenes/clothing/camera.tscn" type="PackedScene" id=1]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/camera.tscn" id="1"]
|
||||||
[ext_resource path="res://sprites/clothes/retro_shirt.svg" type="Texture" id=2]
|
[ext_resource type="Texture2D" uid="uid://bhgvidynd582a" path="res://sprites/clothes/retro_shirt.svg" id="2"]
|
||||||
[ext_resource path="res://scenes/clothing/pants/beat_Jeans.tscn" type="PackedScene" id=3]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/pants/beat_Jeans.tscn" id="3"]
|
||||||
[ext_resource path="res://scenes/clothing/tops/skate_shirt.tscn" type="PackedScene" id=4]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/tops/skate_shirt.tscn" id="4"]
|
||||||
[ext_resource path="res://scenes/clothing/pants/skirt.tscn" type="PackedScene" id=5]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/pants/skirt.tscn" id="5"]
|
||||||
[ext_resource path="res://scenes/clothing/pants/formal_skirt.tscn" type="PackedScene" id=6]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/pants/formal_skirt.tscn" id="6"]
|
||||||
[ext_resource path="res://scenes/clothing/pants/camoJeans.tscn" type="PackedScene" id=7]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/pants/camoJeans.tscn" id="7"]
|
||||||
[ext_resource path="res://scenes/clothing/pants/dj_shorts.tscn" type="PackedScene" id=8]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/pants/dj_shorts.tscn" id="8"]
|
||||||
[ext_resource path="res://sprites/ui/x_button.svg" type="Texture" id=9]
|
[ext_resource type="Texture2D" uid="uid://d1b07mvhon3gv" path="res://sprites/ui/x_button.svg" id="9"]
|
||||||
[ext_resource path="res://scenes/clothing/tops/whatsnew_shirt.tscn" type="PackedScene" id=10]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/tops/whatsnew_shirt.tscn" id="10"]
|
||||||
[ext_resource path="res://scenes/clothing/tops/fullsnack_shirt.tscn" type="PackedScene" id=11]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/tops/fullsnack_shirt.tscn" id="11"]
|
||||||
[ext_resource path="res://scenes/clothing/tops/rawShirt.tscn" type="PackedScene" id=12]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/tops/rawShirt.tscn" id="12"]
|
||||||
[ext_resource path="res://resources/Game.theme" type="Theme" id=13]
|
[ext_resource type="Theme" path="res://resources/Game.theme" id="13"]
|
||||||
[ext_resource path="res://scenes/clothing/tops/atomic_shirt.tscn" type="PackedScene" id=15]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/tops/atomic_shirt.tscn" id="15"]
|
||||||
[ext_resource path="res://scenes/clothing/pants/sweatPants.tscn" type="PackedScene" id=17]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/pants/sweatPants.tscn" id="17"]
|
||||||
[ext_resource path="res://scenes/clothing/tops/retro_shirt.tscn" type="PackedScene" id=18]
|
[ext_resource type="PackedScene" path="res://scenes/clothing/tops/retro_shirt.tscn" id="18"]
|
||||||
[ext_resource path="res://scripts/wardrobe.gd" type="Script" id=21]
|
[ext_resource type="Script" path="res://scripts/wardrobe.gd" id="21"]
|
||||||
|
|
||||||
[node name="Wordrobe" type="TabContainer"]
|
[node name="Wordrobe" type="TabContainer"]
|
||||||
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
theme = ExtResource( 13 )
|
theme = ExtResource("13")
|
||||||
custom_colors/font_color_disabled = Color( 0, 0, 0, 1 )
|
script = ExtResource("21")
|
||||||
custom_colors/font_color_bg = Color( 0.921569, 0.921569, 0.921569, 1 )
|
|
||||||
custom_colors/font_color_fg = Color( 1, 1, 1, 1 )
|
|
||||||
tab_align = 0
|
|
||||||
script = ExtResource( 21 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Pants" type="Tabs" parent="."]
|
[node name="Pants" type="TabBar" parent="."]
|
||||||
anchor_right = 1.0
|
layout_mode = 2
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = 5.0
|
|
||||||
margin_top = 40.0
|
|
||||||
margin_right = -5.0
|
|
||||||
margin_bottom = -10.0
|
|
||||||
custom_constants/hseparation = 0
|
|
||||||
|
|
||||||
[node name="PantsScroll" type="ScrollContainer" parent="Pants"]
|
[node name="PantsScroll" type="ScrollContainer" parent="Pants"]
|
||||||
|
layout_mode = 0
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="PantsGrid" type="GridContainer" parent="Pants/PantsScroll"]
|
[node name="PantsGrid" type="GridContainer" parent="Pants/PantsScroll"]
|
||||||
margin_right = 790.0
|
layout_mode = 2
|
||||||
margin_bottom = 450.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
columns = 4
|
columns = 4
|
||||||
|
|
||||||
[node name="removePants" type="TextureButton" parent="Pants/PantsScroll/PantsGrid"]
|
[node name="removePants" type="TextureButton" parent="Pants/PantsScroll/PantsGrid"]
|
||||||
margin_right = 113.0
|
custom_minimum_size = Vector2(0, 112)
|
||||||
margin_bottom = 128.0
|
layout_mode = 2
|
||||||
rect_min_size = Vector2( 0, 112 )
|
texture_normal = ExtResource("9")
|
||||||
texture_normal = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="beatUpJeans" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource( 3 )]
|
[node name="beatUpJeans" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource("3")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 117.0
|
|
||||||
margin_right = 227.0
|
|
||||||
margin_bottom = 128.0
|
|
||||||
|
|
||||||
[node name="camoJeans" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource( 7 )]
|
[node name="camoJeans" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource("7")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 231.0
|
|
||||||
margin_right = 342.0
|
|
||||||
margin_bottom = 128.0
|
|
||||||
|
|
||||||
[node name="sweatPants" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource( 17 )]
|
[node name="sweatPants" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource("17")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 346.0
|
|
||||||
margin_right = 457.0
|
|
||||||
margin_bottom = 128.0
|
|
||||||
|
|
||||||
[node name="camoJeans2" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource( 8 )]
|
[node name="camoJeans2" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource("8")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_top = 132.0
|
|
||||||
margin_right = 113.0
|
|
||||||
margin_bottom = 258.0
|
|
||||||
|
|
||||||
[node name="formalSkirt" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource( 6 )]
|
[node name="formalSkirt" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource("6")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 117.0
|
|
||||||
margin_top = 132.0
|
|
||||||
margin_right = 227.0
|
|
||||||
margin_bottom = 258.0
|
|
||||||
|
|
||||||
[node name="skirt" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource( 5 )]
|
[node name="skirt" parent="Pants/PantsScroll/PantsGrid" instance=ExtResource("5")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 231.0
|
|
||||||
margin_top = 132.0
|
|
||||||
margin_right = 342.0
|
|
||||||
margin_bottom = 258.0
|
|
||||||
|
|
||||||
[node name="Shirts" type="Tabs" parent="."]
|
[node name="Shirts" type="TabBar" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
anchor_right = 1.0
|
layout_mode = 2
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = 5.0
|
|
||||||
margin_top = 40.0
|
|
||||||
margin_right = -5.0
|
|
||||||
margin_bottom = -10.0
|
|
||||||
|
|
||||||
[node name="ShirtsScroll" type="ScrollContainer" parent="Shirts"]
|
[node name="ShirtsScroll" type="ScrollContainer" parent="Shirts"]
|
||||||
|
layout_mode = 0
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_left = 10.0
|
offset_left = 10.0
|
||||||
margin_top = 10.0
|
offset_top = 10.0
|
||||||
|
|
||||||
[node name="ShirtsGrid" type="GridContainer" parent="Shirts/ShirtsScroll"]
|
[node name="ShirtsGrid" type="GridContainer" parent="Shirts/ShirtsScroll"]
|
||||||
margin_right = 780.0
|
layout_mode = 2
|
||||||
margin_bottom = 440.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
columns = 4
|
columns = 4
|
||||||
|
|
||||||
[node name="removeShirt" type="TextureButton" parent="Shirts/ShirtsScroll/ShirtsGrid"]
|
[node name="removeShirt" type="TextureButton" parent="Shirts/ShirtsScroll/ShirtsGrid"]
|
||||||
margin_right = 106.0
|
custom_minimum_size = Vector2(0, 112)
|
||||||
margin_bottom = 113.0
|
layout_mode = 2
|
||||||
rect_min_size = Vector2( 0, 112 )
|
texture_normal = ExtResource("9")
|
||||||
texture_normal = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="atomicShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource( 15 )]
|
[node name="atomicShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource("15")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 110.0
|
|
||||||
margin_right = 216.0
|
|
||||||
margin_bottom = 113.0
|
|
||||||
|
|
||||||
[node name="skateShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource( 4 )]
|
[node name="skateShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource("4")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 220.0
|
|
||||||
margin_right = 326.0
|
|
||||||
margin_bottom = 113.0
|
|
||||||
|
|
||||||
[node name="fullsnackShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource( 11 )]
|
[node name="fullsnackShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource("11")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 330.0
|
|
||||||
margin_right = 436.0
|
|
||||||
margin_bottom = 113.0
|
|
||||||
|
|
||||||
[node name="rawShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource( 12 )]
|
[node name="rawShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource("12")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_top = 117.0
|
|
||||||
margin_right = 106.0
|
|
||||||
margin_bottom = 229.0
|
|
||||||
|
|
||||||
[node name="whatsNewShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource( 10 )]
|
[node name="whatsNewShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource("10")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 110.0
|
|
||||||
margin_top = 117.0
|
|
||||||
margin_right = 216.0
|
|
||||||
margin_bottom = 229.0
|
|
||||||
|
|
||||||
[node name="retroShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource( 18 )]
|
[node name="retroShirt" parent="Shirts/ShirtsScroll/ShirtsGrid" instance=ExtResource("18")]
|
||||||
anchor_right = 0.0
|
layout_mode = 2
|
||||||
anchor_bottom = 0.0
|
texture_normal = ExtResource("2")
|
||||||
margin_left = 220.0
|
|
||||||
margin_top = 117.0
|
|
||||||
margin_right = 326.0
|
|
||||||
margin_bottom = 229.0
|
|
||||||
texture_normal = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="Accessoires" type="Tabs" parent="."]
|
[node name="Accessoires" type="TabBar" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
anchor_right = 1.0
|
layout_mode = 2
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = 5.0
|
|
||||||
margin_top = 40.0
|
|
||||||
margin_right = -5.0
|
|
||||||
margin_bottom = -10.0
|
|
||||||
|
|
||||||
[node name="AccsScroll" type="ScrollContainer" parent="Accessoires"]
|
[node name="AccsScroll" type="ScrollContainer" parent="Accessoires"]
|
||||||
|
layout_mode = 0
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="AccsGrid" type="GridContainer" parent="Accessoires/AccsScroll"]
|
[node name="AccsGrid" type="GridContainer" parent="Accessoires/AccsScroll"]
|
||||||
margin_right = 790.0
|
layout_mode = 2
|
||||||
margin_bottom = 450.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
columns = 3
|
columns = 3
|
||||||
|
|
||||||
[node name="removeAccessory" type="TextureButton" parent="Accessoires/AccsScroll/AccsGrid"]
|
[node name="removeAccessory" type="TextureButton" parent="Accessoires/AccsScroll/AccsGrid"]
|
||||||
margin_right = 106.0
|
layout_mode = 2
|
||||||
margin_bottom = 112.0
|
texture_normal = ExtResource("9")
|
||||||
texture_normal = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="camera" parent="Accessoires/AccsScroll/AccsGrid" instance=ExtResource( 1 )]
|
[node name="camera" parent="Accessoires/AccsScroll/AccsGrid" instance=ExtResource("1")]
|
||||||
margin_left = 110.0
|
layout_mode = 2
|
||||||
margin_right = 195.0
|
|
||||||
margin_bottom = 112.0
|
|
||||||
|
|
||||||
[connection signal="pressed" from="Pants/PantsScroll/PantsGrid/removePants" to="." method="_on_removePants_pressed"]
|
[connection signal="pressed" from="Pants/PantsScroll/PantsGrid/removePants" to="." method="_on_removePants_pressed"]
|
||||||
[connection signal="pressed" from="Shirts/ShirtsScroll/ShirtsGrid/removeShirt" to="." method="_on_removeShirt_pressed"]
|
[connection signal="pressed" from="Shirts/ShirtsScroll/ShirtsGrid/removeShirt" to="." method="_on_removeShirt_pressed"]
|
||||||
|
|
183
scenes/zack_casey.tscn
Normal file
183
scenes/zack_casey.tscn
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
[gd_scene load_steps=33 format=3 uid="uid://detf8uwimqp3v"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dkch263ayirr7" path="res://sprites/character/shadow.svg" id="1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cddou4chwo8h2" path="res://sprites/character/tail/tail0.svg" id="2"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cnd3v8cerplqq" path="res://sprites/character/tail/tail1.svg" id="3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://djv0p7rxujbd4" path="res://sprites/character/tail/tail2.svg" id="4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cardxswmgbmbv" path="res://sprites/clothes/owo_censor.svg" id="5"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dnwdyi2d46hsm" path="res://sprites/character/eyes/eyes1.png" id="6"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cbr37emgh11is" path="res://sprites/character/eyes/eyes2.png" id="7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ceifal0sxn0r7" path="res://sprites/character/eyes/eyes3.png" id="8"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dujbine82hf7h" path="res://sprites/character/eyes/eyes4.png" id="9"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cbptix4hhenyv" path="res://sprites/character/eyes/eyes5.png" id="10"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://h4v32qrsoyei" path="res://sprites/character/eyes/eyes6.png" id="11"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c2vksbtifnlvp" path="res://sprites/character/eyes/eyes7.png" id="12"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmi3sw4kfrc24" path="res://sprites/character/mouth/mouth.png" id="13"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cja33yr77jh7y" path="res://sprites/character/mouth/mouth2.png" id="14"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c6whcdnm7vvt5" path="res://sprites/character/mouth/mouth3.png" id="15"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dsagc5skojho1" path="res://sprites/character/mouth/mouth4.png" id="16"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dtul4g1ptm2mh" path="res://sprites/character/mouth/mouth5.png" id="17"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b5b7y8vovbnto" path="res://sprites/character/mouth/mouth6.png" id="18"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://hmm5lyshjv1c" path="res://sprites/character/mouth/mouth7.png" id="19"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cyp032kswpjdf" path="res://sprites/character/mouth/mouth8.png" id="20"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b8nfuuiqedapi" path="res://sprites/character/mouth/mouth9.png" id="21"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ce3wk6a1dajrm" path="res://sprites/character/mouth/mouth10.png" id="22"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://2wrx272o3gsa" path="res://sprites/character/mouth/mouth12.png" id="23"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://5jaaocj1kh" path="res://sounds/select_006.ogg" id="24"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://blvwt6d80bq5x" path="res://sprites/character/character_base_top.svg" id="25"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cp4oe0dv4st1w" path="res://sprites/clothes/blank_top.png" id="26"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cpf6yh6fqqxy1" path="res://sprites/character/character_base_head.svg" id="27"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bw7u6fgygd8t" path="res://sprites/character/mouth/mouth11.png" id="28"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/character.gd" id="29"]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="1"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("2")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("3")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 2.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="2"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("6")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("7")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("8")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("9")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("10")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("11")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("12")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 2.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="3"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("13")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("14")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("15")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("16")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("17")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("18")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("19")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("20")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("21")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("22")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("28")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("23")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 2.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[node name="Character" type="Node2D"]
|
||||||
|
position = Vector2(-19, -92)
|
||||||
|
script = ExtResource("29")
|
||||||
|
|
||||||
|
[node name="Click" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("24")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(4.84271, 244.714)
|
||||||
|
texture = ExtResource("1")
|
||||||
|
|
||||||
|
[node name="Body" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Tail" type="AnimatedSprite2D" parent="Body"]
|
||||||
|
position = Vector2(-33.7592, 99.4079)
|
||||||
|
scale = Vector2(0.927713, 1)
|
||||||
|
sprite_frames = SubResource("1")
|
||||||
|
|
||||||
|
[node name="Legs" type="Sprite2D" parent="Body"]
|
||||||
|
position = Vector2(1.47027, 191.868)
|
||||||
|
texture = ExtResource("5")
|
||||||
|
|
||||||
|
[node name="Top" type="Sprite2D" parent="Body"]
|
||||||
|
position = Vector2(7, 78)
|
||||||
|
texture = ExtResource("25")
|
||||||
|
|
||||||
|
[node name="Head" type="Sprite2D" parent="Body"]
|
||||||
|
position = Vector2(10.6805, -25.1047)
|
||||||
|
texture = ExtResource("27")
|
||||||
|
|
||||||
|
[node name="Eyes" type="AnimatedSprite2D" parent="Body/Head"]
|
||||||
|
position = Vector2(17.6857, 4.22147)
|
||||||
|
sprite_frames = SubResource("2")
|
||||||
|
frame = 4
|
||||||
|
|
||||||
|
[node name="Mouth" type="AnimatedSprite2D" parent="Body/Head"]
|
||||||
|
position = Vector2(38.1195, 8.68453)
|
||||||
|
sprite_frames = SubResource("3")
|
||||||
|
frame = 2
|
||||||
|
|
||||||
|
[node name="Accessory" type="Sprite2D" parent="Body"]
|
||||||
|
position = Vector2(9.54095, 73.0832)
|
||||||
|
texture = ExtResource("26")
|
||||||
|
|
||||||
|
[node name="Controls" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="Container" type="Control" parent="Controls"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = -19.0
|
||||||
|
offset_top = -92.0
|
||||||
|
offset_right = -19.0
|
||||||
|
offset_bottom = -92.0
|
||||||
|
|
||||||
|
[node name="ExportWin" type="FileDialog" parent="Controls/Container"]
|
||||||
|
access = 1
|
||||||
|
|
||||||
|
[node name="ImportWin" type="FileDialog" parent="Controls/Container"]
|
||||||
|
access = 1
|
|
@ -1,108 +0,0 @@
|
||||||
# This project is licensed under the Artistic-2.0 license.
|
|
||||||
# See the LICENSE file in the project root for more information.
|
|
||||||
extends Node2D
|
|
||||||
|
|
||||||
const _TDU_VERSION = "0.2"
|
|
||||||
const _SAVE_FILE = "user://character.tdu"
|
|
||||||
|
|
||||||
onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
|
||||||
onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
|
||||||
onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
|
||||||
|
|
||||||
onready var export_win = $Controls/Container/ExportWin
|
|
||||||
onready var import_win = $Controls/Container/ImportWin
|
|
||||||
|
|
||||||
onready var accessory = $Body/Accessory
|
|
||||||
#onready var underwear = $Undies
|
|
||||||
onready var bottom = $Body/Legs
|
|
||||||
onready var top = $Body/Top
|
|
||||||
# onready var eyes = $Body/Head/Eyes
|
|
||||||
# onready var mouth = $Body/Head/Mouth
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
|
|
||||||
if GameData.accessory != null:
|
|
||||||
accessory.texture = GameData.accessory
|
|
||||||
|
|
||||||
# if GameData.underwear != null:
|
|
||||||
# underwear.texture = GameData.underwear
|
|
||||||
|
|
||||||
if GameData.bottom != null:
|
|
||||||
bottom.texture = GameData.bottom
|
|
||||||
|
|
||||||
if GameData.top != null:
|
|
||||||
top.texture = GameData.top
|
|
||||||
|
|
||||||
func save_game():
|
|
||||||
var data_file = {
|
|
||||||
"version": _TDU_VERSION,
|
|
||||||
"game_ver": GameData.version,
|
|
||||||
"accessory": "res://sprites/clothes/blank_top.png",
|
|
||||||
"top": "res://sprites/clothes/blank_top.png",
|
|
||||||
"bottom": "res://sprites/character/character_base_legs.svg",
|
|
||||||
}
|
|
||||||
|
|
||||||
data_file["accessory"] = accessory.texture.resource_path
|
|
||||||
data_file["top"] = top.texture.resource_path
|
|
||||||
data_file["bottom"] = bottom.texture.resource_path
|
|
||||||
|
|
||||||
var file = File.new()
|
|
||||||
if file.open(_SAVE_FILE, File.WRITE) != 0:
|
|
||||||
print("Error opening file")
|
|
||||||
return
|
|
||||||
var json_file = to_json(data_file)
|
|
||||||
|
|
||||||
GameEvents.emit_signal("indicate")
|
|
||||||
|
|
||||||
file.store_line(json_file)
|
|
||||||
file.close()
|
|
||||||
|
|
||||||
func load_game():
|
|
||||||
var file = File.new()
|
|
||||||
|
|
||||||
if not file.file_exists(_SAVE_FILE):
|
|
||||||
print("File not found!")
|
|
||||||
return
|
|
||||||
|
|
||||||
if file.open(_SAVE_FILE, File.READ) != 0:
|
|
||||||
print("Error opening file")
|
|
||||||
return
|
|
||||||
|
|
||||||
var data = parse_json(file.get_as_text())
|
|
||||||
|
|
||||||
var top_texture = ImageTexture.new()
|
|
||||||
var accessory_texture = ImageTexture.new()
|
|
||||||
var bottom_texture = ImageTexture.new()
|
|
||||||
var top_image = Image.new()
|
|
||||||
var accessory_image = Image.new()
|
|
||||||
var bottom_image = Image.new()
|
|
||||||
|
|
||||||
GameEvents.emit_signal("indicate")
|
|
||||||
|
|
||||||
top_image.load(data["top"])
|
|
||||||
top_texture.create_from_image(top_image)
|
|
||||||
top.texture = top_texture
|
|
||||||
|
|
||||||
bottom_image.load(data["bottom"])
|
|
||||||
top_texture.create_from_image(top_image)
|
|
||||||
bottom.texture = top_texture
|
|
||||||
|
|
||||||
accessory_image.load(data["accessory"])
|
|
||||||
accessory_texture.create_from_image(top_image)
|
|
||||||
accessory.texture = accessory_texture
|
|
||||||
|
|
||||||
file.close()
|
|
||||||
|
|
||||||
func _on_clearBtn_pressed():
|
|
||||||
$Click.play()
|
|
||||||
GameData.accessory = blank_accessory
|
|
||||||
GameData.bottom = base_bottom
|
|
||||||
GameData.top = base_top
|
|
||||||
|
|
||||||
func _on_SaveBtn_pressed():
|
|
||||||
$Click.play()
|
|
||||||
save_game()
|
|
||||||
|
|
||||||
func _on_LoadBtn_pressed():
|
|
||||||
$Click.play()
|
|
||||||
load_game()
|
|
|
@ -2,5 +2,5 @@
|
||||||
# See the LICENSE file in the project root for more information.
|
# See the LICENSE file in the project root for more information.
|
||||||
extends TextureButton
|
extends TextureButton
|
||||||
|
|
||||||
onready var player = $select
|
@onready var player = $select
|
||||||
onready var character = preload("res://resources/character.tres")
|
@onready var character = preload("res://resources/character.tres")
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
# See the LICENSE file in the project root for more information.
|
# See the LICENSE file in the project root for more information.
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
export var version: String = "1.0.0"
|
@export var version: String = "1.0.0"
|
||||||
|
|
||||||
onready var character = preload("res://resources/character.tres")
|
@onready var character = preload("res://resources/character.tres")
|
||||||
onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
@onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
||||||
onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
@onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
||||||
onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
@onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
||||||
|
|
||||||
onready var export_btn = $CenterBtns/ButtonCtr/ExportBtn
|
@onready var export_btn = $CenterBtns/ButtonCtr/ExportBtn
|
||||||
onready var import_btn = $CenterBtns/ButtonCtr/ImportBtn
|
@onready var import_btn = $CenterBtns/ButtonCtr/ImportBtn
|
||||||
onready var http_request = $NewsWin/NewsBtns/HTTPRequest
|
@onready var http_request = $NewsWin/NewsBtns/HTTPRequest
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
var verLabel = $VersionLbl
|
var verLabel = $VersionLbl
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
extends WindowDialog
|
extends Window
|
||||||
|
|
||||||
onready var news_list = $News
|
@onready var news_list = $News
|
||||||
onready var http_request = $NewsBtns/HTTPRequest
|
@onready var http_request = $NewsBtns/HTTPRequest
|
||||||
|
|
||||||
func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
||||||
var api_request = parse_json(body.get_string_from_utf8())
|
var test_json_conv = JSON.new()
|
||||||
|
test_json_conv.parse(body.get_string_from_utf8())
|
||||||
|
var api_request = test_json_conv.get_data()
|
||||||
|
|
||||||
if api_request["feed"] != null:
|
if api_request["feed"] != null:
|
||||||
var news_items = api_request["feed"]
|
var news_items = api_request["feed"]
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
# See the LICENSE file in the project root for more information.
|
# See the LICENSE file in the project root for more information.
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
onready var timer = $Timer
|
@onready var timer = $Timer
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
GameEvents.connect("indicate", self, "_on_indicate")
|
GameEvents.connect("indicate",Callable(self,"_on_indicate"))
|
||||||
|
|
||||||
func _on_indicate():
|
func _on_indicate():
|
||||||
show()
|
show()
|
||||||
|
|
|
@ -2,71 +2,15 @@
|
||||||
# See the LICENSE file in the project root for more information.
|
# See the LICENSE file in the project root for more information.
|
||||||
extends TabContainer
|
extends TabContainer
|
||||||
|
|
||||||
onready var character = preload("res://resources/character.tres")
|
@onready var character = preload("res://resources/character.tres")
|
||||||
onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
@onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
||||||
onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
@onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
||||||
onready var base_bottom = preload("res://sprites/clothes/owo_censor.svg")
|
@onready var base_bottom = preload("res://sprites/clothes/owo_censor.svg")
|
||||||
|
|
||||||
onready var pants_grid = $Pants/PantsScroll/PantsGrid
|
@onready var pants_grid = $Pants/PantsScroll/PantsGrid
|
||||||
onready var shirts_grid = $Shirts/ShirtsScroll/ShirtsGrid
|
@onready var shirts_grid = $Shirts/ShirtsScroll/ShirtsGrid
|
||||||
#onready var undies_grid = $Underwear/UndiesScroll/UndiesGrid
|
#onready var undies_grid = $Underwear/UndiesScroll/UndiesGrid
|
||||||
onready var accs_grid = $Accessoires/AccsScroll/AccsGrid
|
@onready var accs_grid = $Accessoires/AccsScroll/AccsGrid
|
||||||
|
|
||||||
func list_files_in_directory(path):
|
|
||||||
var files = []
|
|
||||||
var dir = Directory.new()
|
|
||||||
dir.open(path)
|
|
||||||
dir.list_dir_begin()
|
|
||||||
|
|
||||||
while true:
|
|
||||||
var file = dir.get_next()
|
|
||||||
if file == "":
|
|
||||||
break
|
|
||||||
elif not file.begins_with("."):
|
|
||||||
files.append(file)
|
|
||||||
|
|
||||||
dir.list_dir_end()
|
|
||||||
|
|
||||||
return files
|
|
||||||
|
|
||||||
func load_dlc(dlc_pack):
|
|
||||||
var usr_dir = "user://dlc/"
|
|
||||||
var dlc_path = usr_dir + dlc_pack
|
|
||||||
var load_pck = ProjectSettings.load_resource_pack(dlc_path, false)
|
|
||||||
print_debug("Loaded " + dlc_path + ": " + str(load_pck))
|
|
||||||
|
|
||||||
# Check if the DLC is actually there
|
|
||||||
if load_pck == true:
|
|
||||||
|
|
||||||
# Loads the DLC
|
|
||||||
ProjectSettings.load_resource_pack(dlc_path, false)
|
|
||||||
|
|
||||||
var dir = Directory.new()
|
|
||||||
dir.list_dir_begin()
|
|
||||||
|
|
||||||
# Lists the files in each of their respective directories
|
|
||||||
var shirts_dir = "res://scenes/dlc/shirts/"
|
|
||||||
var pants_dir = "res://scenes/dlc/pants/"
|
|
||||||
var dlc_shirts = list_files_in_directory(shirts_dir)
|
|
||||||
var dlc_pants = list_files_in_directory(pants_dir)
|
|
||||||
|
|
||||||
# Make sure each file actually exist, instance them
|
|
||||||
# and add them to their respective tabs
|
|
||||||
for shirt in dlc_shirts:
|
|
||||||
if dir.file_exists(shirts_dir + shirt):
|
|
||||||
var init = load(shirts_dir + shirt).instance()
|
|
||||||
shirts_grid.add_child(init)
|
|
||||||
print_debug("Initialized: " + shirts_dir + shirt)
|
|
||||||
|
|
||||||
for pants in dlc_pants:
|
|
||||||
if dir.file_exists(pants_dir + pants):
|
|
||||||
var init = load(pants_dir + pants).instance()
|
|
||||||
shirts_grid.add_child(init)
|
|
||||||
print_debug("Initialized: " + pants_dir + pants)
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
load_dlc("emojidlc.pck")
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _on_removeAccessory_pressed():
|
func _on_removeAccessory_pressed():
|
||||||
character.accessory = blank_accessory
|
character.accessory = blank_accessory
|
||||||
|
|
40
scripts/zack_casey.gd
Normal file
40
scripts/zack_casey.gd
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# This project is licensed under the Artistic-2.0 license.
|
||||||
|
# See the LICENSE file in the project root for more information.
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
const _TDU_VERSION = "0.2"
|
||||||
|
const _SAVE_FILE = "user://character.tdu"
|
||||||
|
|
||||||
|
@onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
||||||
|
@onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
||||||
|
@onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
||||||
|
|
||||||
|
@onready var export_win = $Controls/Container/ExportWin
|
||||||
|
@onready var import_win = $Controls/Container/ImportWin
|
||||||
|
|
||||||
|
@onready var accessory = $Body/Accessory
|
||||||
|
#onready var underwear = $Undies
|
||||||
|
@onready var bottom = $Body/Legs
|
||||||
|
@onready var top = $Body/Top
|
||||||
|
# onready var eyes = $Body/Head/Eyes
|
||||||
|
# onready var mouth = $Body/Head/Mouth
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
|
||||||
|
if GameData.accessory != null:
|
||||||
|
accessory.texture = GameData.accessory
|
||||||
|
|
||||||
|
# if GameData.underwear != null:
|
||||||
|
# underwear.texture = GameData.underwear
|
||||||
|
|
||||||
|
if GameData.bottom != null:
|
||||||
|
bottom.texture = GameData.bottom
|
||||||
|
|
||||||
|
if GameData.top != null:
|
||||||
|
top.texture = GameData.top
|
||||||
|
|
||||||
|
func _on_clearBtn_pressed():
|
||||||
|
$Click.play()
|
||||||
|
GameData.accessory = blank_accessory
|
||||||
|
GameData.bottom = base_bottom
|
||||||
|
GameData.top = base_top
|
|
@ -1,15 +1,19 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="ogg_vorbis"
|
importer="oggvorbisstr"
|
||||||
type="AudioStreamOGGVorbis"
|
type="AudioStreamOggVorbis"
|
||||||
path="res://.import/select_001.ogg-e484cc0d7fdb1bade16000667c9301ff.oggstr"
|
uid="uid://b7wxfxu4mnq8r"
|
||||||
|
path="res://.godot/imported/select_001.ogg-e484cc0d7fdb1bade16000667c9301ff.oggvorbisstr"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sounds/select_001.ogg"
|
source_file="res://sounds/select_001.ogg"
|
||||||
dest_files=[ "res://.import/select_001.ogg-e484cc0d7fdb1bade16000667c9301ff.oggstr" ]
|
dest_files=["res://.godot/imported/select_001.ogg-e484cc0d7fdb1bade16000667c9301ff.oggvorbisstr"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
loop=false
|
loop=false
|
||||||
loop_offset=0
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="ogg_vorbis"
|
importer="oggvorbisstr"
|
||||||
type="AudioStreamOGGVorbis"
|
type="AudioStreamOggVorbis"
|
||||||
path="res://.import/select_006.ogg-2d3bb43abce3a1ca90c52ff16f4f7535.oggstr"
|
uid="uid://5jaaocj1kh"
|
||||||
|
path="res://.godot/imported/select_006.ogg-2d3bb43abce3a1ca90c52ff16f4f7535.oggvorbisstr"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sounds/select_006.ogg"
|
source_file="res://sounds/select_006.ogg"
|
||||||
dest_files=[ "res://.import/select_006.ogg-2d3bb43abce3a1ca90c52ff16f4f7535.oggstr" ]
|
dest_files=["res://.godot/imported/select_006.ogg-2d3bb43abce3a1ca90c52ff16f4f7535.oggvorbisstr"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
loop=false
|
loop=false
|
||||||
loop_offset=0
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/character_base.png-222c4d0efcff3a294bb1bd39fb74e583.stex"
|
uid="uid://dxpvahpmr14ty"
|
||||||
|
path="res://.godot/imported/character_base.png-222c4d0efcff3a294bb1bd39fb74e583.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/character_base.png"
|
source_file="res://sprites/character/character_base.png"
|
||||||
dest_files=[ "res://.import/character_base.png-222c4d0efcff3a294bb1bd39fb74e583.stex" ]
|
dest_files=["res://.godot/imported/character_base.png-222c4d0efcff3a294bb1bd39fb74e583.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/character_base.svg-f62b30364422a0db60ab659817d94da0.stex"
|
uid="uid://ckygwian2n0f6"
|
||||||
|
path="res://.godot/imported/character_base.svg-f62b30364422a0db60ab659817d94da0.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,27 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/character_base.svg"
|
source_file="res://sprites/character/character_base.svg"
|
||||||
dest_files=[ "res://.import/character_base.svg-f62b30364422a0db60ab659817d94da0.stex" ]
|
dest_files=["res://.godot/imported/character_base.svg-f62b30364422a0db60ab659817d94da0.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|
|
@ -1,37 +1,38 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path.s3tc="res://.import/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.s3tc.stex"
|
uid="uid://cpf6yh6fqqxy1"
|
||||||
path.etc2="res://.import/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.etc2.stex"
|
path.etc2="res://.godot/imported/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.etc2.ctex"
|
||||||
path.etc="res://.import/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.etc.stex"
|
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": [ "s3tc", "etc2", "etc" ],
|
"imported_formats": ["etc2_astc"],
|
||||||
"vram_texture": true
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/character_base_head.svg"
|
source_file="res://sprites/character/character_base_head.svg"
|
||||||
dest_files=[ "res://.import/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.s3tc.stex", "res://.import/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.etc2.stex", "res://.import/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.etc.stex" ]
|
dest_files=["res://.godot/imported/character_base_head.svg-c6ec92d4b0d5afcc554996c82b73eee5.etc2.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=true
|
compress/channel_pack=0
|
||||||
flags/filter=true
|
mipmaps/generate=false
|
||||||
flags/mipmaps=true
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|
|
@ -1,37 +1,38 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path.s3tc="res://.import/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.s3tc.stex"
|
uid="uid://mt5o8b0q6ws2"
|
||||||
path.etc2="res://.import/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.etc2.stex"
|
path.etc2="res://.godot/imported/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.etc2.ctex"
|
||||||
path.etc="res://.import/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.etc.stex"
|
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": [ "s3tc", "etc2", "etc" ],
|
"imported_formats": ["etc2_astc"],
|
||||||
"vram_texture": true
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/character_base_legs.svg"
|
source_file="res://sprites/character/character_base_legs.svg"
|
||||||
dest_files=[ "res://.import/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.s3tc.stex", "res://.import/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.etc2.stex", "res://.import/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.etc.stex" ]
|
dest_files=["res://.godot/imported/character_base_legs.svg-8bbc9fe42e444a7c06b2051d0989bd57.etc2.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=true
|
compress/channel_pack=0
|
||||||
flags/filter=true
|
mipmaps/generate=false
|
||||||
flags/mipmaps=true
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|
|
@ -1,37 +1,38 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path.s3tc="res://.import/character_base_top.svg-b95961557622279347465696eae8cd3a.s3tc.stex"
|
uid="uid://blvwt6d80bq5x"
|
||||||
path.etc2="res://.import/character_base_top.svg-b95961557622279347465696eae8cd3a.etc2.stex"
|
path.etc2="res://.godot/imported/character_base_top.svg-b95961557622279347465696eae8cd3a.etc2.ctex"
|
||||||
path.etc="res://.import/character_base_top.svg-b95961557622279347465696eae8cd3a.etc.stex"
|
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": [ "s3tc", "etc2", "etc" ],
|
"imported_formats": ["etc2_astc"],
|
||||||
"vram_texture": true
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/character_base_top.svg"
|
source_file="res://sprites/character/character_base_top.svg"
|
||||||
dest_files=[ "res://.import/character_base_top.svg-b95961557622279347465696eae8cd3a.s3tc.stex", "res://.import/character_base_top.svg-b95961557622279347465696eae8cd3a.etc2.stex", "res://.import/character_base_top.svg-b95961557622279347465696eae8cd3a.etc.stex" ]
|
dest_files=["res://.godot/imported/character_base_top.svg-b95961557622279347465696eae8cd3a.etc2.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=true
|
compress/channel_pack=0
|
||||||
flags/filter=true
|
mipmaps/generate=false
|
||||||
flags/mipmaps=true
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/eyes1.png-73b579923539cd9b6a780210ef4ee335.stex"
|
uid="uid://dnwdyi2d46hsm"
|
||||||
|
path="res://.godot/imported/eyes1.png-73b579923539cd9b6a780210ef4ee335.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/eyes/eyes1.png"
|
source_file="res://sprites/character/eyes/eyes1.png"
|
||||||
dest_files=[ "res://.import/eyes1.png-73b579923539cd9b6a780210ef4ee335.stex" ]
|
dest_files=["res://.godot/imported/eyes1.png-73b579923539cd9b6a780210ef4ee335.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/eyes2.png-4af64839f1431f1f966c1f90dfdb2161.stex"
|
uid="uid://cbr37emgh11is"
|
||||||
|
path="res://.godot/imported/eyes2.png-4af64839f1431f1f966c1f90dfdb2161.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/eyes/eyes2.png"
|
source_file="res://sprites/character/eyes/eyes2.png"
|
||||||
dest_files=[ "res://.import/eyes2.png-4af64839f1431f1f966c1f90dfdb2161.stex" ]
|
dest_files=["res://.godot/imported/eyes2.png-4af64839f1431f1f966c1f90dfdb2161.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/eyes3.png-86a1bcf0f5f1c3ccde66985478feb3c3.stex"
|
uid="uid://ceifal0sxn0r7"
|
||||||
|
path="res://.godot/imported/eyes3.png-86a1bcf0f5f1c3ccde66985478feb3c3.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/eyes/eyes3.png"
|
source_file="res://sprites/character/eyes/eyes3.png"
|
||||||
dest_files=[ "res://.import/eyes3.png-86a1bcf0f5f1c3ccde66985478feb3c3.stex" ]
|
dest_files=["res://.godot/imported/eyes3.png-86a1bcf0f5f1c3ccde66985478feb3c3.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/eyes4.png-ae7a7dde8b5ac5b14729f145f4921563.stex"
|
uid="uid://dujbine82hf7h"
|
||||||
|
path="res://.godot/imported/eyes4.png-ae7a7dde8b5ac5b14729f145f4921563.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/eyes/eyes4.png"
|
source_file="res://sprites/character/eyes/eyes4.png"
|
||||||
dest_files=[ "res://.import/eyes4.png-ae7a7dde8b5ac5b14729f145f4921563.stex" ]
|
dest_files=["res://.godot/imported/eyes4.png-ae7a7dde8b5ac5b14729f145f4921563.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/eyes5.png-7671a3f68922046c208cc64480685057.stex"
|
uid="uid://cbptix4hhenyv"
|
||||||
|
path="res://.godot/imported/eyes5.png-7671a3f68922046c208cc64480685057.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/eyes/eyes5.png"
|
source_file="res://sprites/character/eyes/eyes5.png"
|
||||||
dest_files=[ "res://.import/eyes5.png-7671a3f68922046c208cc64480685057.stex" ]
|
dest_files=["res://.godot/imported/eyes5.png-7671a3f68922046c208cc64480685057.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/eyes6.png-73c9fb2df6533151523bf3c885e092bd.stex"
|
uid="uid://h4v32qrsoyei"
|
||||||
|
path="res://.godot/imported/eyes6.png-73c9fb2df6533151523bf3c885e092bd.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/eyes/eyes6.png"
|
source_file="res://sprites/character/eyes/eyes6.png"
|
||||||
dest_files=[ "res://.import/eyes6.png-73c9fb2df6533151523bf3c885e092bd.stex" ]
|
dest_files=["res://.godot/imported/eyes6.png-73c9fb2df6533151523bf3c885e092bd.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/eyes7.png-a0c120b24390775e0f8dc1862c1abf1f.stex"
|
uid="uid://c2vksbtifnlvp"
|
||||||
|
path="res://.godot/imported/eyes7.png-a0c120b24390775e0f8dc1862c1abf1f.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/eyes/eyes7.png"
|
source_file="res://sprites/character/eyes/eyes7.png"
|
||||||
dest_files=[ "res://.import/eyes7.png-a0c120b24390775e0f8dc1862c1abf1f.stex" ]
|
dest_files=["res://.godot/imported/eyes7.png-a0c120b24390775e0f8dc1862c1abf1f.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth.png-deec3b91d860cebe9868223ce1bd3da0.stex"
|
uid="uid://bmi3sw4kfrc24"
|
||||||
|
path="res://.godot/imported/mouth.png-deec3b91d860cebe9868223ce1bd3da0.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth.png"
|
source_file="res://sprites/character/mouth/mouth.png"
|
||||||
dest_files=[ "res://.import/mouth.png-deec3b91d860cebe9868223ce1bd3da0.stex" ]
|
dest_files=["res://.godot/imported/mouth.png-deec3b91d860cebe9868223ce1bd3da0.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth10.png-3e65cf5b4178e912f41158d9076ffbf8.stex"
|
uid="uid://ce3wk6a1dajrm"
|
||||||
|
path="res://.godot/imported/mouth10.png-3e65cf5b4178e912f41158d9076ffbf8.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth10.png"
|
source_file="res://sprites/character/mouth/mouth10.png"
|
||||||
dest_files=[ "res://.import/mouth10.png-3e65cf5b4178e912f41158d9076ffbf8.stex" ]
|
dest_files=["res://.godot/imported/mouth10.png-3e65cf5b4178e912f41158d9076ffbf8.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth11.png-1cab10e9e96b9a11737eba55eca4c162.stex"
|
uid="uid://bw7u6fgygd8t"
|
||||||
|
path="res://.godot/imported/mouth11.png-1cab10e9e96b9a11737eba55eca4c162.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth11.png"
|
source_file="res://sprites/character/mouth/mouth11.png"
|
||||||
dest_files=[ "res://.import/mouth11.png-1cab10e9e96b9a11737eba55eca4c162.stex" ]
|
dest_files=["res://.godot/imported/mouth11.png-1cab10e9e96b9a11737eba55eca4c162.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth12.png-08b9b22ef416d7c45ac363bb83a5ad7a.stex"
|
uid="uid://2wrx272o3gsa"
|
||||||
|
path="res://.godot/imported/mouth12.png-08b9b22ef416d7c45ac363bb83a5ad7a.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth12.png"
|
source_file="res://sprites/character/mouth/mouth12.png"
|
||||||
dest_files=[ "res://.import/mouth12.png-08b9b22ef416d7c45ac363bb83a5ad7a.stex" ]
|
dest_files=["res://.godot/imported/mouth12.png-08b9b22ef416d7c45ac363bb83a5ad7a.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth2.png-714ad90600be6128f536bc6ebe04302f.stex"
|
uid="uid://cja33yr77jh7y"
|
||||||
|
path="res://.godot/imported/mouth2.png-714ad90600be6128f536bc6ebe04302f.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth2.png"
|
source_file="res://sprites/character/mouth/mouth2.png"
|
||||||
dest_files=[ "res://.import/mouth2.png-714ad90600be6128f536bc6ebe04302f.stex" ]
|
dest_files=["res://.godot/imported/mouth2.png-714ad90600be6128f536bc6ebe04302f.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth3.png-094195b5d96ad7cd042464cb3580b87e.stex"
|
uid="uid://c6whcdnm7vvt5"
|
||||||
|
path="res://.godot/imported/mouth3.png-094195b5d96ad7cd042464cb3580b87e.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth3.png"
|
source_file="res://sprites/character/mouth/mouth3.png"
|
||||||
dest_files=[ "res://.import/mouth3.png-094195b5d96ad7cd042464cb3580b87e.stex" ]
|
dest_files=["res://.godot/imported/mouth3.png-094195b5d96ad7cd042464cb3580b87e.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth4.png-e4537fa7ef9fc591ed1a3810c170a6f5.stex"
|
uid="uid://dsagc5skojho1"
|
||||||
|
path="res://.godot/imported/mouth4.png-e4537fa7ef9fc591ed1a3810c170a6f5.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth4.png"
|
source_file="res://sprites/character/mouth/mouth4.png"
|
||||||
dest_files=[ "res://.import/mouth4.png-e4537fa7ef9fc591ed1a3810c170a6f5.stex" ]
|
dest_files=["res://.godot/imported/mouth4.png-e4537fa7ef9fc591ed1a3810c170a6f5.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth5.png-ac18ff3d3ed5f41011bf86a8c40a2f89.stex"
|
uid="uid://dtul4g1ptm2mh"
|
||||||
|
path="res://.godot/imported/mouth5.png-ac18ff3d3ed5f41011bf86a8c40a2f89.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth5.png"
|
source_file="res://sprites/character/mouth/mouth5.png"
|
||||||
dest_files=[ "res://.import/mouth5.png-ac18ff3d3ed5f41011bf86a8c40a2f89.stex" ]
|
dest_files=["res://.godot/imported/mouth5.png-ac18ff3d3ed5f41011bf86a8c40a2f89.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth6.png-a448220ac9d674c1eebeb666e0e0eb4f.stex"
|
uid="uid://b5b7y8vovbnto"
|
||||||
|
path="res://.godot/imported/mouth6.png-a448220ac9d674c1eebeb666e0e0eb4f.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth6.png"
|
source_file="res://sprites/character/mouth/mouth6.png"
|
||||||
dest_files=[ "res://.import/mouth6.png-a448220ac9d674c1eebeb666e0e0eb4f.stex" ]
|
dest_files=["res://.godot/imported/mouth6.png-a448220ac9d674c1eebeb666e0e0eb4f.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth7.png-4985ee37bd8fa210e7f234ef6fd11008.stex"
|
uid="uid://hmm5lyshjv1c"
|
||||||
|
path="res://.godot/imported/mouth7.png-4985ee37bd8fa210e7f234ef6fd11008.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth7.png"
|
source_file="res://sprites/character/mouth/mouth7.png"
|
||||||
dest_files=[ "res://.import/mouth7.png-4985ee37bd8fa210e7f234ef6fd11008.stex" ]
|
dest_files=["res://.godot/imported/mouth7.png-4985ee37bd8fa210e7f234ef6fd11008.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth8.png-3d754278cb0ea22569288c205858318c.stex"
|
uid="uid://cyp032kswpjdf"
|
||||||
|
path="res://.godot/imported/mouth8.png-3d754278cb0ea22569288c205858318c.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth8.png"
|
source_file="res://sprites/character/mouth/mouth8.png"
|
||||||
dest_files=[ "res://.import/mouth8.png-3d754278cb0ea22569288c205858318c.stex" ]
|
dest_files=["res://.godot/imported/mouth8.png-3d754278cb0ea22569288c205858318c.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/mouth9.png-b2cef61cc34e357567d7d6e1631b767a.stex"
|
uid="uid://b8nfuuiqedapi"
|
||||||
|
path="res://.godot/imported/mouth9.png-b2cef61cc34e357567d7d6e1631b767a.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,24 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/mouth/mouth9.png"
|
source_file="res://sprites/character/mouth/mouth9.png"
|
||||||
dest_files=[ "res://.import/mouth9.png-b2cef61cc34e357567d7d6e1631b767a.stex" ]
|
dest_files=["res://.godot/imported/mouth9.png-b2cef61cc34e357567d7d6e1631b767a.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[remap]
|
[remap]
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="CompressedTexture2D"
|
||||||
path="res://.import/new_character_base.svg-e17bd63473c7566b3b9184366a11923d.stex"
|
uid="uid://d00j00ob8bihq"
|
||||||
|
path="res://.godot/imported/new_character_base.svg-e17bd63473c7566b3b9184366a11923d.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
@ -10,25 +11,27 @@ metadata={
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/character/new_character_base.svg"
|
source_file="res://sprites/character/new_character_base.svg"
|
||||||
dest_files=[ "res://.import/new_character_base.svg-e17bd63473c7566b3b9184366a11923d.stex" ]
|
dest_files=["res://.godot/imported/new_character_base.svg-e17bd63473c7566b3b9184366a11923d.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_mode=0
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
compress/channel_pack=0
|
||||||
flags/filter=false
|
mipmaps/generate=false
|
||||||
flags/mipmaps=false
|
mipmaps/limit=-1
|
||||||
flags/anisotropic=false
|
roughness/mode=0
|
||||||
flags/srgb=2
|
roughness/src_normal=""
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/normal_map_invert_y=false
|
||||||
process/invert_color=false
|
process/hdr_as_srgb=false
|
||||||
stream=false
|
process/hdr_clamp_exposure=false
|
||||||
size_limit=0
|
process/size_limit=0
|
||||||
detect_3d=false
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue