Further simplified design
- Removed a tone of bloat - Use simple arrows to scroll through items instead of drag-and-drop
609
.gdignore
|
@ -1,3 +1,606 @@
|
||||||
docs
|
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
|
||||||
*.md
|
# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio
|
||||||
.idea
|
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio
|
||||||
|
|
||||||
|
### Backup ###
|
||||||
|
*.bak
|
||||||
|
*.gho
|
||||||
|
*.ori
|
||||||
|
*.orig
|
||||||
|
*.tmp
|
||||||
|
|
||||||
|
### Executable ###
|
||||||
|
*.app
|
||||||
|
*.bat
|
||||||
|
*.cgi
|
||||||
|
*.com
|
||||||
|
*.exe
|
||||||
|
*.gadget
|
||||||
|
*.jar
|
||||||
|
*.pif
|
||||||
|
*.vb
|
||||||
|
*.wsf
|
||||||
|
|
||||||
|
### Godot ###
|
||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
|
||||||
|
# Godot-specific ignores
|
||||||
|
.import/
|
||||||
|
export.cfg
|
||||||
|
export_presets.cfg
|
||||||
|
|
||||||
|
# Imported translations (automatically generated from CSV files)
|
||||||
|
*.translation
|
||||||
|
|
||||||
|
# Mono-specific ignores
|
||||||
|
.mono/
|
||||||
|
data_*/
|
||||||
|
mono_crash.*.json
|
||||||
|
|
||||||
|
### Linux ###
|
||||||
|
*~
|
||||||
|
|
||||||
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||||
|
.fuse_hidden*
|
||||||
|
|
||||||
|
# KDE directory preferences
|
||||||
|
.directory
|
||||||
|
|
||||||
|
# Linux trash folder which might appear on any partition or disk
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
### macOS ###
|
||||||
|
# General
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Icon must end with two \r
|
||||||
|
Icon
|
||||||
|
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
### macOS Patch ###
|
||||||
|
# iCloud generated files
|
||||||
|
*.icloud
|
||||||
|
|
||||||
|
### Rider ###
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# AWS User-specific
|
||||||
|
.idea/**/aws.xml
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/jarRepositories.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# SonarLint plugin
|
||||||
|
.idea/sonarlint/
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
|
### VisualStudioCode ###
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
!.vscode/*.code-snippets
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
.history/
|
||||||
|
|
||||||
|
# Built Visual Studio Code Extensions
|
||||||
|
*.vsix
|
||||||
|
|
||||||
|
### VisualStudioCode Patch ###
|
||||||
|
# Ignore all local history of files
|
||||||
|
.history
|
||||||
|
.ionide
|
||||||
|
|
||||||
|
### Windows ###
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
Thumbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
### VisualStudio ###
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.rsuser
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Mono auto generated files
|
||||||
|
mono_crash.*
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUnit
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
nunit-*.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.tlog
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*.json
|
||||||
|
coverage*.xml
|
||||||
|
coverage*.info
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
|
||||||
|
*.vbp
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
|
||||||
|
*.dsw
|
||||||
|
*.dsp
|
||||||
|
|
||||||
|
# Visual Studio 6 technical files
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
.localhistory/
|
||||||
|
|
||||||
|
# Visual Studio History (VSHistory) files
|
||||||
|
.vshistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
||||||
|
|
||||||
|
# VS Code files for those working on multiple tools
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
|
||||||
|
# Windows Installer files from build outputs
|
||||||
|
|
||||||
|
# JetBrains Rider
|
||||||
|
*.sln.iml
|
||||||
|
|
||||||
|
### VisualStudio Patch ###
|
||||||
|
# Additional files built by Visual Studio
|
||||||
|
|
||||||
|
# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio
|
||||||
|
|
||||||
|
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)
|
||||||
|
|
||||||
|
screenshot.png
|
||||||
|
archive/*
|
503
.gitignore
vendored
|
@ -1,6 +1,6 @@
|
||||||
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
|
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
|
||||||
# Created by https://www.toptal.com/developers/gitignore/api/windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup
|
# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio
|
||||||
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup
|
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio
|
||||||
|
|
||||||
### Backup ###
|
### Backup ###
|
||||||
*.bak
|
*.bak
|
||||||
|
@ -9,15 +9,6 @@
|
||||||
*.orig
|
*.orig
|
||||||
*.tmp
|
*.tmp
|
||||||
|
|
||||||
### DotnetCore ###
|
|
||||||
# .NET Core build folders
|
|
||||||
bin/
|
|
||||||
obj/
|
|
||||||
|
|
||||||
# Common node modules locations
|
|
||||||
/node_modules
|
|
||||||
/wwwroot/node_modules
|
|
||||||
|
|
||||||
### Executable ###
|
### Executable ###
|
||||||
*.app
|
*.app
|
||||||
*.bat
|
*.bat
|
||||||
|
@ -95,15 +86,84 @@ Temporary Items
|
||||||
# iCloud generated files
|
# iCloud generated files
|
||||||
*.icloud
|
*.icloud
|
||||||
|
|
||||||
### MonoDevelop ###
|
### Rider ###
|
||||||
#User Specific
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
*.userprefs
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
*.usertasks
|
|
||||||
|
|
||||||
#Mono Project Files
|
# User-specific stuff
|
||||||
*.pidb
|
.idea/**/workspace.xml
|
||||||
*.resources
|
.idea/**/tasks.xml
|
||||||
test-results/
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# AWS User-specific
|
||||||
|
.idea/**/aws.xml
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/jarRepositories.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# SonarLint plugin
|
||||||
|
.idea/sonarlint/
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
### VisualStudioCode ###
|
### VisualStudioCode ###
|
||||||
.vscode/*
|
.vscode/*
|
||||||
|
@ -124,21 +184,6 @@ test-results/
|
||||||
.history
|
.history
|
||||||
.ionide
|
.ionide
|
||||||
|
|
||||||
### Web ###
|
|
||||||
*.asp
|
|
||||||
*.cer
|
|
||||||
*.csr
|
|
||||||
*.css
|
|
||||||
*.htm
|
|
||||||
*.html
|
|
||||||
*.js
|
|
||||||
*.jsp
|
|
||||||
*.php
|
|
||||||
*.rss
|
|
||||||
*.wasm
|
|
||||||
*.wat
|
|
||||||
*.xhtml
|
|
||||||
|
|
||||||
### Windows ###
|
### Windows ###
|
||||||
# Windows thumbnail cache files
|
# Windows thumbnail cache files
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
@ -165,7 +210,395 @@ $RECYCLE.BIN/
|
||||||
# Windows shortcuts
|
# Windows shortcuts
|
||||||
*.lnk
|
*.lnk
|
||||||
|
|
||||||
# End of https://www.toptal.com/developers/gitignore/api/windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup
|
### VisualStudio ###
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.rsuser
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Mono auto generated files
|
||||||
|
mono_crash.*
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUnit
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
nunit-*.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.tlog
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*.json
|
||||||
|
coverage*.xml
|
||||||
|
coverage*.info
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
|
||||||
|
*.vbp
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
|
||||||
|
*.dsw
|
||||||
|
*.dsp
|
||||||
|
|
||||||
|
# Visual Studio 6 technical files
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
.localhistory/
|
||||||
|
|
||||||
|
# Visual Studio History (VSHistory) files
|
||||||
|
.vshistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
||||||
|
|
||||||
|
# VS Code files for those working on multiple tools
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
|
||||||
|
# Windows Installer files from build outputs
|
||||||
|
|
||||||
|
# JetBrains Rider
|
||||||
|
*.sln.iml
|
||||||
|
|
||||||
|
### VisualStudio Patch ###
|
||||||
|
# Additional files built by Visual Studio
|
||||||
|
|
||||||
|
# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio
|
||||||
|
|
||||||
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)
|
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
# Dress Up Zack
|
# Dress Up Zack
|
||||||
|
|
||||||
Tony's Dress Up is a re-imagining of my first (and only) Flash game series, ZC's Dress Up that was developed back in 2007. Both this and the originals are heavily inspired by The Sims 2: Body Shop in their own unique ways.
|

|
||||||
|
|
||||||
|
Tony's Dress Up is a port of my first (and only) Flash game series, ZC's Dress Up that was developed back in 2007. Both this and the originals are heavily inspired by The Sims 2: Body Shop in their own unique ways.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
The source and assets are licensed under the GPL-3.0 License and CC-BY, respectfully - see the [LICENSE](LICENSE) and [ASSET-LICENSE](ASSET-LICENSE) for more details.
|
The source and assets are licensed under the GPL-3.0 License and CC-BY, respectfully - see the [LICENSE](LICENSE) and [ASSET-LICENSE](ASSET-LICENSE) for more details.
|
||||||
|
|
||||||
The Flash games located in the `/archive` directory are proprietary, but considered abandonware. Any extracted assets are under the same license. Feel free to share them on archives.
|
The Flash games located in the `/archive` directory are proprietary, but considered abandonware. Any extracted assets are under the same license. Feel free to share them on archives.
|
Before Width: | Height: | Size: 913 B |
|
@ -1,13 +0,0 @@
|
||||||
@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")
|
|
|
@ -1,77 +0,0 @@
|
||||||
[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
|
|
|
@ -1,714 +0,0 @@
|
||||||
[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"]
|
|
|
@ -1,7 +0,0 @@
|
||||||
[plugin]
|
|
||||||
|
|
||||||
name="Spritesheet Generator"
|
|
||||||
description="Generates cropped spritesheets from multiple images."
|
|
||||||
author="KoBeWi"
|
|
||||||
version="1.2"
|
|
||||||
script="SpriteSheetGenerator.gd"
|
|
|
@ -32,14 +32,17 @@ gdscript/completion/autocomplete_setters_and_getters=true
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=800
|
|
||||||
window/size/viewport_height=500
|
|
||||||
window/size/resizable=false
|
|
||||||
window/energy_saving/keep_screen_on=false
|
window/energy_saving/keep_screen_on=false
|
||||||
|
window/stretch/mode="canvas_items"
|
||||||
|
window/stretch/aspect="expand"
|
||||||
|
|
||||||
|
[dotnet]
|
||||||
|
|
||||||
|
project/assembly_name="Dress Up Zack"
|
||||||
|
|
||||||
[editor_plugins]
|
[editor_plugins]
|
||||||
|
|
||||||
enabled=PackedStringArray("res://addons/SpritesheetGenerator/plugin.cfg", "res://addons/fontawesome/plugin.cfg")
|
enabled=PackedStringArray("res://addons/fontawesome/plugin.cfg")
|
||||||
|
|
||||||
[file_customization]
|
[file_customization]
|
||||||
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://bguec0ft5ygk4"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bvbelmb6rvy4f" path="res://scenes/platform.tscn" id="1_31w52"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dn152ouc7l21p" path="res://scenes/object.tscn" id="2_cgl4f"]
|
|
||||||
|
|
||||||
[node name="Demo" type="Node2D"]
|
|
||||||
|
|
||||||
[node name="Platform" parent="." instance=ExtResource("1_31w52")]
|
|
||||||
position = Vector2(170, 92)
|
|
||||||
|
|
||||||
[node name="Platform2" parent="." instance=ExtResource("1_31w52")]
|
|
||||||
position = Vector2(419, 84)
|
|
||||||
|
|
||||||
[node name="Platform3" parent="." instance=ExtResource("1_31w52")]
|
|
||||||
position = Vector2(296, 286)
|
|
||||||
|
|
||||||
[node name="Object" parent="." instance=ExtResource("2_cgl4f")]
|
|
||||||
position = Vector2(169, 90)
|
|
157
scenes/game.tscn
|
@ -1,49 +1,154 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://cvr2aries2lhr"]
|
[gd_scene load_steps=17 format=3 uid="uid://cvr2aries2lhr"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/game.gd" id="1_qt3fe"]
|
||||||
[ext_resource type="Texture2D" uid="uid://33g80p0qnfw4" path="res://sprites/world/background.svg" id="1_uee2i"]
|
[ext_resource type="Texture2D" uid="uid://33g80p0qnfw4" path="res://sprites/world/background.svg" id="1_uee2i"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bi7ayrxnn7hex" path="res://sprites/clothes/icrazy_frame.svg" id="2_n1kmf"]
|
[ext_resource type="Texture2D" uid="uid://bi7ayrxnn7hex" path="res://sprites/world/icrazy_frame.svg" id="2_n1kmf"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cmv58t1dfgsov" path="res://sprites/world/stand.svg" id="2_q0w7j"]
|
[ext_resource type="Texture2D" uid="uid://cmv58t1dfgsov" path="res://sprites/world/stand.svg" id="2_q0w7j"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dteiup73cqn4o" path="res://sprites/clothes/lights.png" id="3_bbsyl"]
|
[ext_resource type="Texture2D" uid="uid://d1u3w61r0uv7p" path="res://sprites/world/boxersOfAmericaFrame.png" id="4_327cy"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dn152ouc7l21p" path="res://scenes/object.tscn" id="6_6t4pu"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://detf8uwimqp3v" path="res://scenes/character.tscn" id="6_tdil0"]
|
[ext_resource type="PackedScene" uid="uid://detf8uwimqp3v" path="res://scenes/character.tscn" id="6_tdil0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bvbelmb6rvy4f" path="res://scenes/platform.tscn" id="7_vqx6c"]
|
[ext_resource type="Texture2D" uid="uid://405burxtvied" path="res://sprites/clothes/sweat_pants.svg" id="7_7tx8y"]
|
||||||
[ext_resource type="Texture2D" uid="uid://venieklgphn5" path="res://sprites/clothes/blue_camo_jeans.svg" id="8_bqcl8"]
|
[ext_resource type="Texture2D" uid="uid://venieklgphn5" path="res://sprites/clothes/blue_camo_jeans.svg" id="8_bqcl8"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://8vrl1mmcm5is" path="res://sprites/clothes/beat_up_jeans.svg" id="8_jisbs"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://310b2835i5d8" path="res://sprites/clothes/dj_shirt.png" id="8_r4o7r"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dt1tsnusorwv8" path="res://sprites/clothes/korm_shirt.png" id="11_6ilrq"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://clakkue2mohs4" path="res://sprites/ui/greenBtn.png" id="14_yk2bu"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cd8mirubbhn10" path="res://sprites/ui/redBtn.png" id="15_g5gd1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://wr3ns0ywb75q" path="res://sprites/logo.png" id="16_y58oj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b0sf2e2e5jfab" path="res://sprites/clothes/z_shirt.png" id="17_yoe0e"]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_jjbgs"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("7_7tx8y")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("8_jisbs")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("8_bqcl8")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"bottoms",
|
||||||
|
"speed": 1.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("8_r4o7r")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("11_6ilrq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("17_yoe0e")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"tops",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
[node name="Game" type="Node"]
|
[node name="Game" type="Node"]
|
||||||
|
script = ExtResource("1_qt3fe")
|
||||||
|
|
||||||
[node name="Background" type="Sprite2D" parent="."]
|
[node name="Background" type="Sprite2D" parent="."]
|
||||||
position = Vector2(400, 240)
|
position = Vector2(577.603, 328.303)
|
||||||
|
scale = Vector2(1.14718, 1.13943)
|
||||||
texture = ExtResource("1_uee2i")
|
texture = ExtResource("1_uee2i")
|
||||||
metadata/_edit_lock_ = true
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[node name="Stand" type="Sprite2D" parent="."]
|
[node name="Stand" type="Sprite2D" parent="."]
|
||||||
position = Vector2(125, 461)
|
position = Vector2(564.62, 543.689)
|
||||||
scale = Vector2(1.28991, 1.3328)
|
scale = Vector2(1.79062, 1.7736)
|
||||||
texture = ExtResource("2_q0w7j")
|
texture = ExtResource("2_q0w7j")
|
||||||
|
|
||||||
[node name="PictureFrame" type="Sprite2D" parent="."]
|
[node name="BoxersOfAmericaFrame" type="Sprite2D" parent="."]
|
||||||
position = Vector2(107.454, 127.574)
|
position = Vector2(942.068, 139.049)
|
||||||
|
scale = Vector2(1.7514, 1.86172)
|
||||||
|
texture = ExtResource("4_327cy")
|
||||||
|
|
||||||
|
[node name="iCrazyFrame" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(183.37, 149.267)
|
||||||
|
scale = Vector2(1.25573, 1.3008)
|
||||||
texture = ExtResource("2_n1kmf")
|
texture = ExtResource("2_n1kmf")
|
||||||
|
|
||||||
[node name="Light3D" type="PointLight2D" parent="PictureFrame"]
|
|
||||||
position = Vector2(35.118, -14.56)
|
|
||||||
texture = ExtResource("3_bbsyl")
|
|
||||||
metadata/_edit_lock_ = true
|
|
||||||
|
|
||||||
[node name="Character" parent="." instance=ExtResource("6_tdil0")]
|
[node name="Character" parent="." instance=ExtResource("6_tdil0")]
|
||||||
position = Vector2(117, 234)
|
position = Vector2(557.567, 197.468)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
|
||||||
|
[node name="Bottoms" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(570.883, 453.423)
|
||||||
|
scale = Vector2(1.85571, 1.88987)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_jjbgs")
|
||||||
|
animation = &"bottoms"
|
||||||
|
|
||||||
|
[node name="Tops" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(579.842, 318.193)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_jjbgs")
|
||||||
|
animation = &"tops"
|
||||||
|
|
||||||
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="CanvasLayer"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
metadata/_edit_lock_ = true
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[node name="Bottoms" parent="." groups=["pants"] instance=ExtResource("7_vqx6c")]
|
[node name="TopsFwdBtn" type="TextureButton" parent="CanvasLayer/Control"]
|
||||||
position = Vector2(120, 409)
|
layout_mode = 0
|
||||||
|
offset_left = 733.043
|
||||||
|
offset_top = 272.435
|
||||||
|
offset_right = 776.043
|
||||||
|
offset_bottom = 335.435
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
texture_normal = ExtResource("14_yk2bu")
|
||||||
|
stretch_mode = 4
|
||||||
|
|
||||||
[node name="Platform" parent="." groups=["pants"] instance=ExtResource("7_vqx6c")]
|
[node name="TopsBckBtn" type="TextureButton" parent="CanvasLayer/Control"]
|
||||||
position = Vector2(335, 78)
|
layout_mode = 0
|
||||||
|
offset_left = 322.285
|
||||||
|
offset_top = 269.324
|
||||||
|
offset_right = 365.285
|
||||||
|
offset_bottom = 332.324
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
texture_normal = ExtResource("15_g5gd1")
|
||||||
|
|
||||||
[node name="Object" parent="." instance=ExtResource("6_6t4pu")]
|
[node name="BottomsBckBtn" type="TextureButton" parent="CanvasLayer/Control"]
|
||||||
position = Vector2(335, 79)
|
layout_mode = 1
|
||||||
group = "pants"
|
anchors_preset = -1
|
||||||
texture = ExtResource("8_bqcl8")
|
anchor_left = 0.273624
|
||||||
|
anchor_top = 0.59627
|
||||||
|
anchor_right = 0.330916
|
||||||
|
anchor_bottom = 0.753677
|
||||||
|
offset_top = -1.90735e-05
|
||||||
|
offset_right = 1.52588e-05
|
||||||
|
offset_bottom = -1.04904e-05
|
||||||
|
texture_normal = ExtResource("15_g5gd1")
|
||||||
|
stretch_mode = 4
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="TileMap" type="TileMap" parent="."]
|
[node name="BottomsFwdBtn" type="TextureButton" parent="CanvasLayer/Control"]
|
||||||
format = 2
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.636238
|
||||||
|
anchor_top = 0.600003
|
||||||
|
anchor_right = 0.695266
|
||||||
|
anchor_bottom = 0.752781
|
||||||
|
offset_left = 1.52588e-05
|
||||||
|
texture_normal = ExtResource("14_yk2bu")
|
||||||
|
stretch_mode = 4
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="Logo" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1052.16, 511.503)
|
||||||
|
scale = Vector2(0.225814, 0.216046)
|
||||||
|
texture = ExtResource("16_y58oj")
|
||||||
|
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Control/TopsFwdBtn" to="." method="_on_tops_fwd_btn_pressed"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Control/TopsBckBtn" to="." method="_on_tops_bck_btn_pressed"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Control/BottomsBckBtn" to="." method="_on_bottoms_bck_btn_pressed"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Control/BottomsFwdBtn" to="." method="_on_bottoms_fwd_btn_pressed"]
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://dn152ouc7l21p"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/object.gd" id="1_tyfcj"]
|
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xd2jg"]
|
|
||||||
size = Vector2(111, 125.5)
|
|
||||||
|
|
||||||
[node name="Object" type="Node2D"]
|
|
||||||
script = ExtResource("1_tyfcj")
|
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
|
||||||
position = Vector2(4.5, 6.5)
|
|
||||||
scale = Vector2(1.32143, 1.32292)
|
|
||||||
|
|
||||||
[node name="Area2D" type="Area2D" parent="."]
|
|
||||||
metadata/_edit_lock_ = true
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
|
||||||
position = Vector2(5, 7)
|
|
||||||
shape = SubResource("RectangleShape2D_xd2jg")
|
|
||||||
metadata/_edit_lock_ = true
|
|
||||||
|
|
||||||
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
|
||||||
[connection signal="body_exited" from="Area2D" to="." method="_on_area_2d_body_exited"]
|
|
||||||
[connection signal="mouse_entered" from="Area2D" to="." method="_on_area_2d_mouse_entered"]
|
|
||||||
[connection signal="mouse_exited" from="Area2D" to="." method="_on_area_2d_mouse_exited"]
|
|
|
@ -1,20 +0,0 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://bvbelmb6rvy4f"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/platform.gd" id="1_xgdk6"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://c52oho3nvkt45" path="res://sprites/clothes/scale.png" id="2_ic83p"]
|
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ieyrm"]
|
|
||||||
size = Vector2(111, 126)
|
|
||||||
|
|
||||||
[node name="Platform" type="StaticBody2D"]
|
|
||||||
script = ExtResource("1_xgdk6")
|
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
|
||||||
position = Vector2(4.5, 7)
|
|
||||||
scale = Vector2(1.32143, 1.28571)
|
|
||||||
texture = ExtResource("2_ic83p")
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
|
||||||
position = Vector2(4.5, 7)
|
|
||||||
shape = SubResource("RectangleShape2D_ieyrm")
|
|
||||||
metadata/_edit_lock_ = true
|
|
|
@ -1,51 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://crwoe1shep3qn"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dn152ouc7l21p" path="res://scenes/object.tscn" id="1_0jlsi"]
|
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_oig6u"]
|
|
||||||
size = Vector2(111, 125.5)
|
|
||||||
|
|
||||||
[node name="Wordrobe" type="Panel"]
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
metadata/_edit_use_anchors_ = true
|
|
||||||
|
|
||||||
[node name="Grid" type="GridContainer" parent="."]
|
|
||||||
layout_mode = 2
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
columns = 4
|
|
||||||
metadata/_edit_use_anchors_ = true
|
|
||||||
|
|
||||||
[node name="Object" parent="Grid" instance=ExtResource("1_0jlsi")]
|
|
||||||
position = Vector2(51, 54)
|
|
||||||
texture = null
|
|
||||||
|
|
||||||
[node name="Bottoms" type="StaticBody2D" parent="Grid" groups=["bottoms"]]
|
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="Grid/Bottoms"]
|
|
||||||
custom_minimum_size = Vector2(111, 125)
|
|
||||||
anchors_preset = 8
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = -49.0
|
|
||||||
offset_top = 116.0
|
|
||||||
offset_right = 62.0
|
|
||||||
offset_bottom = 241.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
color = Color(1, 1, 1, 0.0980392)
|
|
||||||
metadata/_edit_use_anchors_ = true
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Grid/Bottoms"]
|
|
||||||
position = Vector2(6, 178.25)
|
|
||||||
shape = SubResource("RectangleShape2D_oig6u")
|
|
BIN
screenshot.gif
Before Width: | Height: | Size: 300 KiB |
BIN
screenshot.png
Normal file
After Width: | Height: | Size: 461 KiB |
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dycgk1pvyl7fu"
|
uid="uid://bjio4exj7ic6b"
|
||||||
path="res://.godot/imported/main_ui.png-ac6532fbb861d9876368e8a8c16e4467.ctex"
|
path="res://.godot/imported/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://screenshots/main_ui.png"
|
source_file="res://screenshot.png"
|
||||||
dest_files=["res://.godot/imported/main_ui.png-ac6532fbb861d9876368e8a8c16e4467.ctex"]
|
dest_files=["res://.godot/imported/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 59 KiB |
|
@ -1,3 +1,4 @@
|
||||||
|
@tool
|
||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
@onready var _eyes = $Eyes
|
@onready var _eyes = $Eyes
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
# This project is licensed under the GPL-3.0 license.
|
|
||||||
# See the LICENSE file in the project root for more information.
|
|
||||||
extends TextureRect
|
|
||||||
|
|
||||||
var is_draggable = false
|
|
||||||
var is_inside_draggable = false
|
|
||||||
var body_ref
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _process(delta):
|
|
||||||
if is_draggable:
|
|
||||||
if Input.is_action_just_pressed("click"):
|
|
||||||
global_position = get_global_mouse_position()
|
|
||||||
elif Input.is_action_just_released("click"):
|
|
||||||
is_draggable = false
|
|
||||||
var tween = get_tree().create_tween()
|
|
||||||
if is_inside_draggable:
|
|
||||||
tween.tween_property(self,"postion",body_ref.position,0.2).set_ease(Tween.EASE_OUT)
|
|
||||||
else:
|
|
||||||
tween.tween_property(self,"global_postion",body_ref.position,0.2).set_ease(Tween.EASE_OUT)
|
|
||||||
|
|
||||||
func _get_drag_data(at_position):
|
|
||||||
var preview_texture = TextureRect.new()
|
|
||||||
|
|
||||||
preview_texture.texture = texture
|
|
||||||
preview_texture.expand_mode = 1
|
|
||||||
preview_texture.size = Vector2(106, 112)
|
|
||||||
|
|
||||||
set_drag_preview(preview_texture)
|
|
||||||
|
|
||||||
return preview_texture.texture
|
|
||||||
|
|
||||||
func _can_drop_data(at_position, data):
|
|
||||||
return data is Texture2D
|
|
||||||
|
|
||||||
func _drop_data(at_position, data):
|
|
||||||
texture = data
|
|
23
scripts/game.gd
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
|
@onready var tops = $Tops
|
||||||
|
@onready var bottoms = $Bottoms
|
||||||
|
|
||||||
|
func _on_tops_fwd_btn_pressed():
|
||||||
|
var current_frame = tops.get_frame()
|
||||||
|
tops.frame = current_frame + 1;
|
||||||
|
|
||||||
|
func _on_tops_bck_btn_pressed():
|
||||||
|
var current_frame = tops.get_frame()
|
||||||
|
tops.frame = current_frame + -1;
|
||||||
|
|
||||||
|
|
||||||
|
func _on_bottoms_bck_btn_pressed():
|
||||||
|
var current_frame = bottoms.get_frame()
|
||||||
|
bottoms.frame = current_frame + -1;
|
||||||
|
|
||||||
|
|
||||||
|
func _on_bottoms_fwd_btn_pressed():
|
||||||
|
var current_frame = bottoms.get_frame()
|
||||||
|
bottoms.frame = current_frame + 1;
|
|
@ -1,3 +0,0 @@
|
||||||
# This project is licensed under the GPL-3.0 license.
|
|
||||||
# See the LICENSE file in the project root for more information.
|
|
||||||
extends Control
|
|
|
@ -1,61 +0,0 @@
|
||||||
# This project is licensed under the GPL-3.0 license.
|
|
||||||
# See the LICENSE file in the project root for more information.
|
|
||||||
@tool
|
|
||||||
extends Node2D
|
|
||||||
|
|
||||||
@export var group: String = "dropable"
|
|
||||||
@export var texture: Texture2D
|
|
||||||
|
|
||||||
var is_draggable = false
|
|
||||||
var is_inside_dropable = false
|
|
||||||
var body_ref
|
|
||||||
var offset: Vector2
|
|
||||||
|
|
||||||
@onready var sprite = $Sprite2D
|
|
||||||
@onready var collsion = $Area2D/CollisionShape2D
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
sprite.texture = texture
|
|
||||||
collsion.position = sprite.position
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _process(delta):
|
|
||||||
if is_draggable:
|
|
||||||
if Input.is_action_just_pressed("click"):
|
|
||||||
offset = global_position - get_global_mouse_position()
|
|
||||||
Global.is_dragging = true
|
|
||||||
|
|
||||||
if Input.is_action_pressed("click"):
|
|
||||||
global_position = get_global_mouse_position() - offset
|
|
||||||
elif Input.is_action_just_released("click"):
|
|
||||||
Global.is_dragging = false
|
|
||||||
var tween = get_tree().create_tween()
|
|
||||||
if is_inside_dropable:
|
|
||||||
tween.tween_property(self, "position", body_ref.position, 0.2).set_ease(Tween.EASE_OUT)
|
|
||||||
else:
|
|
||||||
tween.tween_property(self, "global_position", body_ref.position, 0.2).set_ease(Tween.EASE_OUT)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_area_2d_body_entered(body):
|
|
||||||
if body.is_in_group(group):
|
|
||||||
is_inside_dropable = true
|
|
||||||
body.modulate = Color(Color.REBECCA_PURPLE, 1)
|
|
||||||
scale = Vector2(1.05, 1.05)
|
|
||||||
body_ref = body
|
|
||||||
|
|
||||||
func _on_area_2d_body_exited(body:StaticBody2D):
|
|
||||||
if body.is_in_group(group):
|
|
||||||
is_inside_dropable = false
|
|
||||||
body.modulate = Color(Color.MEDIUM_PURPLE, .7)
|
|
||||||
scale = Vector2(1.05, 1.05)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_area_2d_mouse_entered():
|
|
||||||
if not Global.is_dragging:
|
|
||||||
is_draggable = true
|
|
||||||
scale = Vector2(1.05, 1.05)
|
|
||||||
|
|
||||||
func _on_area_2d_mouse_exited():
|
|
||||||
if not Global.is_dragging:
|
|
||||||
is_draggable = false
|
|
||||||
scale = Vector2(1, 1)
|
|
|
@ -1,12 +0,0 @@
|
||||||
# This project is licensed under the GPL-3.0 license.
|
|
||||||
# See the LICENSE file in the project root for more information.
|
|
||||||
extends StaticBody2D
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
modulate = Color(Color.MEDIUM_PURPLE, 0.7)
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
if Global.is_dragging:
|
|
||||||
visible = true
|
|
||||||
else:
|
|
||||||
visible = false
|
|
|
@ -1,15 +1,79 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<svg
|
||||||
<svg width="100%" height="100%" viewBox="0 0 84 96" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;">
|
width="79"
|
||||||
<g id="Color" transform="matrix(1,0,0,1,-0.311807,3.9386)">
|
height="79"
|
||||||
<path id="path2567-7" d="M74.437,-2.53C74.358,-2.535 74.278,-2.529 74.195,-2.51C60.752,0.463 38.712,-1.81 29.746,-1.138C27.585,-0.975 20.45,46.617 3.253,67.485C-3.144,75.247 31.556,74.434 32.832,70.17C35.841,50.723 50.345,33.416 50.345,33.416C50.345,33.416 52.329,54.385 49.456,65.405C47.174,74.163 76.162,73.153 76.7,64.12C78.141,39.903 79.36,-2.243 74.437,-2.53ZM28.447,40.58C31.03,40.745 36.046,47.686 31.388,50.628C30.664,51.085 21.818,47.961 21.602,47.085C21.552,46.881 23.441,43.188 23.744,42.887C24.781,41.638 26.561,40.779 28.204,40.586C28.282,40.577 28.364,40.575 28.447,40.58L28.447,40.58Z" style="fill:rgb(107,166,255);fill-rule:nonzero;"/>
|
viewBox="0 0 79 79"
|
||||||
|
version="1.1"
|
||||||
|
xml:space="preserve"
|
||||||
|
style="clip-rule:evenodd;fill-rule:evenodd"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="beat_up_jeans.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20e, 2023-11-25)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"><defs
|
||||||
|
id="defs1" /><sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="5.6893064"
|
||||||
|
inkscape:cx="44.733045"
|
||||||
|
inkscape:cy="29.353315"
|
||||||
|
inkscape:window-width="1392"
|
||||||
|
inkscape:window-height="975"
|
||||||
|
inkscape:window-x="527"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
id="Color"
|
||||||
|
transform="translate(-1.1019076,3.939774)">
|
||||||
|
<path
|
||||||
|
id="path2567-7"
|
||||||
|
d="m 74.437,-2.53 c -0.079,-0.005 -0.159,10e-4 -0.242,0.02 -13.443,2.973 -35.483,0.7 -44.449,1.372 -2.161,0.163 -9.296,47.755 -26.493,68.623 -6.397,7.762 28.303,6.949 29.579,2.685 3.009,-19.447 17.513,-36.754 17.513,-36.754 0,0 1.984,20.969 -0.889,31.989 -2.282,8.758 26.706,7.748 27.244,-1.285 1.441,-24.217 2.66,-66.363 -2.263,-66.65 z m -45.99,43.11 c 2.583,0.165 7.599,7.106 2.941,10.048 -0.724,0.457 -9.57,-2.667 -9.786,-3.543 -0.05,-0.204 1.839,-3.897 2.142,-4.198 1.037,-1.249 2.817,-2.108 4.46,-2.301 0.078,-0.009 0.16,-0.011 0.243,-0.006 z"
|
||||||
|
style="fill:#6ba6ff;fill-rule:nonzero" />
|
||||||
</g>
|
</g>
|
||||||
<g id="Re-ink" transform="matrix(1,0,0,1,-0.311807,3.9386)">
|
<g
|
||||||
<path id="path2567" d="M3.252,67.484C20.449,46.616 27.585,-0.975 29.746,-1.138C38.712,-1.81 60.752,0.463 74.195,-2.51C79.495,-3.682 78.164,38.019 76.7,62.62C76.163,71.653 47.173,72.663 49.456,63.905C52.328,52.885 50.345,33.415 50.345,33.415C50.345,33.415 34.099,52.598 32.832,70.17C32.511,74.609 -3.144,75.246 3.252,67.484Z" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:2.83px;"/>
|
id="Re-ink"
|
||||||
<path id="path2571" d="M50.345,33.415C50.345,33.415 55.459,27.022 54.9,21.679C54.341,16.337 54.605,2.175 54.605,2.175" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.42px;"/>
|
transform="translate(-1.1019076,3.939774)">
|
||||||
<path id="path2573" d="M54.9,21.679L58.763,2.105" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.42px;"/>
|
<path
|
||||||
<path id="path2569" d="M25.073,16.765C25.073,16.765 32.974,19.361 35.29,16.293C37.606,13.226 37.355,1.36 37.355,1.36L28.498,2.801L25.073,16.765Z" style="fill:rgb(103,103,103);fill-rule:nonzero;stroke:black;stroke-width:1.7px;"/>
|
id="path2567"
|
||||||
<path id="path2583" d="M27.783,2.547C27.783,2.547 29.006,-0.13 30.184,-0.057C42.542,0.715 60.983,-0.21 74.27,-1.261C75.328,-1.344 75.36,1.731 74.684,1.867C64.47,3.916 27.783,2.547 27.783,2.547Z" style="fill:rgb(152,152,152);fill-rule:nonzero;"/>
|
d="M 3.252,67.484 C 20.449,46.616 27.585,-0.975 29.746,-1.138 38.712,-1.81 60.752,0.463 74.195,-2.51 c 5.3,-1.172 3.969,40.529 2.505,65.13 -0.537,9.033 -29.527,10.043 -27.244,1.285 2.872,-11.02 0.889,-30.49 0.889,-30.49 0,0 -16.246,19.183 -17.513,36.755 -0.321,4.439 -35.976,5.076 -29.58,-2.686 z"
|
||||||
<path id="path2579" d="M27.783,2.547L54.393,3.343L75.36,1.731" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.42px;"/>
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2.83px" />
|
||||||
|
<path
|
||||||
|
id="path2571"
|
||||||
|
d="m 50.345,33.415 c 0,0 5.114,-6.393 4.555,-11.736 C 54.341,16.337 54.605,2.175 54.605,2.175"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:1.42px" />
|
||||||
|
<path
|
||||||
|
id="path2573"
|
||||||
|
d="M 54.9,21.679 58.763,2.105"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:1.42px" />
|
||||||
|
<path
|
||||||
|
id="path2569"
|
||||||
|
d="m 25.073,16.765 c 0,0 7.901,2.596 10.217,-0.472 C 37.606,13.226 37.355,1.36 37.355,1.36 l -8.857,1.441 z"
|
||||||
|
style="fill:#676767;fill-rule:nonzero;stroke:#000000;stroke-width:1.7px" />
|
||||||
|
<path
|
||||||
|
id="path2583"
|
||||||
|
d="m 27.783,2.547 c 0,0 1.223,-2.677 2.401,-2.604 12.358,0.772 30.799,-0.153 44.086,-1.204 1.058,-0.083 1.09,2.992 0.414,3.128 -10.214,2.049 -46.901,0.68 -46.901,0.68 z"
|
||||||
|
style="fill:#989898;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2579"
|
||||||
|
d="M 27.783,2.547 54.393,3.343 75.36,1.731"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:1.42px" />
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
<metadata
|
||||||
|
id="metadata1"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
|
||||||
|
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
|
||||||
|
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
sprites/clothes/blue-ruffle-logo.afdesign
Normal file
|
@ -1,33 +1,151 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<svg
|
||||||
<svg width="100%" height="100%" viewBox="0 0 84 97" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;">
|
width="79"
|
||||||
<g id="Re-ink" transform="matrix(1,0,0,1,3.78547,0.55964)">
|
height="79"
|
||||||
<path id="path2567" d="M-1.662,72.921C14.964,51.595 22.307,3.585 24.463,3.364C33.407,2.449 56.999,4.204 70.357,0.868C75.623,-0.447 72.545,45.854 71.748,70.486C71.456,79.53 42.504,81.325 44.549,72.509C47.121,61.414 47.489,37.426 47.489,37.426C47.489,37.426 32.541,57.906 27.979,74.804C26.819,79.101 -7.846,80.853 -1.662,72.921Z" style="fill:rgb(0,51,102);fill-rule:nonzero;stroke:black;stroke-width:2.83px;"/>
|
viewBox="0 0 79 79"
|
||||||
<path id="path2616" d="M18.906,29.424C20.48,30.405 18.779,33.492 19.658,34.905C20.749,36.659 25.767,34.949 26.788,36.59C31.93,44.854 18.845,45.167 14.669,42.752" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
version="1.1"
|
||||||
<path id="path2614" d="M41.642,42.972C38.066,44.929 34.683,42.295 31.176,42.832C28.305,43.272 30.94,53.534 36.104,50.24" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
xml:space="preserve"
|
||||||
<path id="path2571" d="M47.503,37.223C47.503,37.223 50.975,31.5 51.496,26.335C52.017,21.171 50.87,6.651 50.87,6.651" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:2.27px;"/>
|
style="clip-rule:evenodd;fill-rule:evenodd"
|
||||||
<path id="path2573" d="M51.561,24.992L55.018,6.658" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:2.27px;"/>
|
id="svg1"
|
||||||
<path id="path2612" d="M23.168,21.22C19.896,38.728 50.562,39.526 39.428,23.982C37.373,21.113 35.873,18.985 32.627,18.119" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
sodipodi:docname="blue_camo_jeans.svg"
|
||||||
<path id="path2622" d="M12.345,47.392C17.748,46.58 16.622,50.31 19.401,53.601C20.805,55.265 24.103,54.558 25.256,55.729C25.593,56.071 25.433,58.581 25.231,59.043C21.862,66.743 13.152,61.118 8.29,57.589" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
inkscape:version="1.3.2 (091e20e, 2023-11-25)"
|
||||||
<path id="path2569" d="M19.55,20.819C19.55,20.819 29.267,21.122 31.824,18.253C34.382,15.384 33.088,7.413 33.088,7.413L24.098,7.18L19.55,20.819Z" style="fill:rgb(51,51,51);fill-rule:nonzero;stroke:black;stroke-width:1.42px;"/>
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
<path id="path2579" d="M24.098,7.18L50.721,7.255L71.636,5.075" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.42px;"/>
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
<path id="path2598" d="M45.057,27.221C47.968,24.828 53.463,23.172 57.002,25.202" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.85px;"/>
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
<path id="path2600" d="M47.762,29.546C44.089,30.911 41.013,33.206 37.615,34.886" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.85px;"/>
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
<path id="path2602" d="M54.522,27.251C54.654,30.868 56.325,34.498 57.184,37.824" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.85px;"/>
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
<path id="path2610" d="M52.458,33.969C52.962,35.072 52.707,36.417 52.64,37.677" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.85px;"/>
|
xmlns:cc="http://creativecommons.org/ns#"><defs
|
||||||
<path id="path2618" d="M71.861,15.086C70.142,14.926 66.288,15.11 65.404,17.019C63.896,20.275 66.296,22.251 67.366,24.71C69.89,30.51 58.333,40.049 71.672,40.018" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
id="defs1" /><sodipodi:namedview
|
||||||
<path id="path2620" d="M48.563,46.565C52.2,46.201 55.352,46.027 58.154,48.118C59.621,49.214 66.25,51.916 67.957,51.011C69.012,50.452 70.942,47.794 70.91,48.987C70.568,61.851 72.809,57.084 56.995,53.842C53.905,53.208 49.445,57.527 48.404,54.902C48.404,54.902 47.935,49.272 48.563,46.565L48.563,46.565Z" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
id="namedview1"
|
||||||
<path id="path2630" d="M5.247,65.058C19.854,71.595 5.994,79.898 0.224,73.116" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
pagecolor="#ffffff"
|
||||||
<path id="path2624" d="M0.326,72.638C7.274,73.785 12.92,73.195 19.256,71.559" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.85px;"/>
|
bordercolor="#000000"
|
||||||
<path id="path2632" d="M70.266,70.006C56.179,61.261 55.609,65.928 53.219,76.686C59.684,78.01 69.256,75.88 70.266,70.006Z" style="fill:rgb(204,204,204);fill-rule:nonzero;"/>
|
borderopacity="0.25"
|
||||||
<path id="path2626" d="M48.707,72.368C55.516,73.649 62.013,75.276 67.931,71.115" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.85px;"/>
|
inkscape:showpageshadow="2"
|
||||||
<g id="g2657" transform="matrix(0.998587,0.0531475,-0.0531475,0.998587,-2.56451,-4.90154)">
|
inkscape:pageopacity="0.0"
|
||||||
<path id="path2604" d="M53.856,9.307C53.72,13.714 52.262,17.537 49.718,20.929" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.75px;"/>
|
inkscape:pagecheckerboard="0"
|
||||||
<ellipse id="path2634" cx="49.529" cy="20.881" rx="0.71" ry="0.805"/>
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="8.5773196"
|
||||||
|
inkscape:cx="48.616587"
|
||||||
|
inkscape:cy="34.043269"
|
||||||
|
inkscape:window-width="1392"
|
||||||
|
inkscape:window-height="947"
|
||||||
|
inkscape:window-x="527"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
id="Re-ink"
|
||||||
|
transform="translate(3.786409,0.56047467)">
|
||||||
|
<path
|
||||||
|
id="path2567"
|
||||||
|
d="M -1.662,72.921 C 14.964,51.595 22.307,3.585 24.463,3.364 c 8.944,-0.915 32.536,0.84 45.894,-2.496 5.266,-1.315 2.188,44.986 1.391,69.618 -0.292,9.044 -29.244,10.839 -27.199,2.023 2.572,-11.095 2.94,-35.083 2.94,-35.083 0,0 -14.948,20.48 -19.51,37.378 -1.16,4.297 -35.825,6.049 -29.641,-1.883 z"
|
||||||
|
style="fill:#003366;fill-rule:nonzero;stroke:#000000;stroke-width:2.83px" />
|
||||||
|
<path
|
||||||
|
id="path2616"
|
||||||
|
d="m 18.906,29.424 c 1.574,0.981 -0.127,4.068 0.752,5.481 1.091,1.754 6.109,0.044 7.13,1.685 5.142,8.264 -7.943,8.577 -12.119,6.162"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2614"
|
||||||
|
d="m 41.642,42.972 c -3.576,1.957 -6.959,-0.677 -10.466,-0.14 -2.871,0.44 -0.236,10.702 4.928,7.408"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2571"
|
||||||
|
d="m 47.503,37.223 c 0,0 3.472,-5.723 3.993,-10.888 C 52.017,21.171 50.87,6.651 50.87,6.651"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2.27px" />
|
||||||
|
<path
|
||||||
|
id="path2573"
|
||||||
|
d="M 51.561,24.992 55.018,6.658"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2.27px" />
|
||||||
|
<path
|
||||||
|
id="path2612"
|
||||||
|
d="m 23.168,21.22 c -3.272,17.508 27.394,18.306 16.26,2.762 -2.055,-2.869 -3.555,-4.997 -6.801,-5.863"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2622"
|
||||||
|
d="m 12.345,47.392 c 5.403,-0.812 4.277,2.918 7.056,6.209 1.404,1.664 4.702,0.957 5.855,2.128 0.337,0.342 0.177,2.852 -0.025,3.314 -3.369,7.7 -12.079,2.075 -16.941,-1.454"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2569"
|
||||||
|
d="m 19.55,20.819 c 0,0 9.717,0.303 12.274,-2.566 2.558,-2.869 1.264,-10.84 1.264,-10.84 L 24.098,7.18 Z"
|
||||||
|
style="fill:#333333;fill-rule:nonzero;stroke:#000000;stroke-width:1.42px" />
|
||||||
|
<path
|
||||||
|
id="path2579"
|
||||||
|
d="M 24.098,7.18 50.721,7.255 71.636,5.075"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:1.42px" />
|
||||||
|
<path
|
||||||
|
id="path2598"
|
||||||
|
d="m 45.057,27.221 c 2.911,-2.393 8.406,-4.049 11.945,-2.019"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.85px" />
|
||||||
|
<path
|
||||||
|
id="path2600"
|
||||||
|
d="m 47.762,29.546 c -3.673,1.365 -6.749,3.66 -10.147,5.34"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.85px" />
|
||||||
|
<path
|
||||||
|
id="path2602"
|
||||||
|
d="m 54.522,27.251 c 0.132,3.617 1.803,7.247 2.662,10.573"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.85px" />
|
||||||
|
<path
|
||||||
|
id="path2610"
|
||||||
|
d="m 52.458,33.969 c 0.504,1.103 0.249,2.448 0.182,3.708"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.85px" />
|
||||||
|
<path
|
||||||
|
id="path2618"
|
||||||
|
d="m 71.861,15.086 c -1.719,-0.16 -5.573,0.024 -6.457,1.933 -1.508,3.256 0.892,5.232 1.962,7.691 2.524,5.8 -9.033,15.339 4.306,15.308"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2620"
|
||||||
|
d="m 48.563,46.565 c 3.637,-0.364 6.789,-0.538 9.591,1.553 1.467,1.096 8.096,3.798 9.803,2.893 1.055,-0.559 2.985,-3.217 2.953,-2.024 -0.342,12.864 1.899,8.097 -13.915,4.855 -3.09,-0.634 -7.55,3.685 -8.591,1.06 0,0 -0.469,-5.63 0.159,-8.337 z"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2630"
|
||||||
|
d="m 5.247,65.058 c 14.607,6.537 0.747,14.84 -5.023,8.058"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2624"
|
||||||
|
d="m 0.326,72.638 c 6.948,1.147 12.594,0.557 18.93,-1.079"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.85px" />
|
||||||
|
<path
|
||||||
|
id="path2632"
|
||||||
|
d="M 70.266,70.006 C 56.179,61.261 55.609,65.928 53.219,76.686 59.684,78.01 69.256,75.88 70.266,70.006 Z"
|
||||||
|
style="fill:#cccccc;fill-rule:nonzero" />
|
||||||
|
<path
|
||||||
|
id="path2626"
|
||||||
|
d="m 48.707,72.368 c 6.809,1.281 13.306,2.908 19.224,-1.253"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.85px" />
|
||||||
|
<g
|
||||||
|
id="g2657"
|
||||||
|
transform="rotate(3.0465618,90.878122,-50.668814)">
|
||||||
|
<path
|
||||||
|
id="path2604"
|
||||||
|
d="m 53.856,9.307 c -0.136,4.407 -1.594,8.23 -4.138,11.622"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.75px" />
|
||||||
|
<ellipse
|
||||||
|
id="path2634"
|
||||||
|
cx="49.528999"
|
||||||
|
cy="20.881001"
|
||||||
|
rx="0.70999998"
|
||||||
|
ry="0.80500001" />
|
||||||
</g>
|
</g>
|
||||||
<g id="g2653" transform="matrix(0.998587,0.0531475,-0.0531475,0.998587,-2.56451,-4.90154)">
|
<g
|
||||||
<path id="path2606" d="M58.115,8.483C59.708,11.672 61.187,15.3 63.356,18.088" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.75px;"/>
|
id="g2653"
|
||||||
<ellipse id="path2634-8" cx="63.403" cy="18.088" rx="0.71" ry="0.805"/>
|
transform="rotate(3.0465618,90.878122,-50.668814)">
|
||||||
|
<path
|
||||||
|
id="path2606"
|
||||||
|
d="m 58.115,8.483 c 1.593,3.189 3.072,6.817 5.241,9.605"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.75px" />
|
||||||
|
<ellipse
|
||||||
|
id="path2634-8"
|
||||||
|
cx="63.403"
|
||||||
|
cy="18.087999"
|
||||||
|
rx="0.70999998"
|
||||||
|
ry="0.80500001" />
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
<metadata
|
||||||
|
id="metadata1"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
|
||||||
|
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
|
||||||
|
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 6.2 KiB |
BIN
sprites/clothes/logo.png
Normal file
After Width: | Height: | Size: 20 KiB |
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bnkl8rujlgv0h"
|
uid="uid://ch1y0g1plqys6"
|
||||||
path="res://.godot/imported/Checker.png-95b82ca4c05ab143e1e16c56d598421b.ctex"
|
path="res://.godot/imported/logo.png-68ff395daf2515f85e13ba18ce4a426d.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SpritesheetGenerator/Checker.png"
|
source_file="res://sprites/clothes/logo.png"
|
||||||
dest_files=["res://.godot/imported/Checker.png-95b82ca4c05ab143e1e16c56d598421b.ctex"]
|
dest_files=["res://.godot/imported/logo.png-68ff395daf2515f85e13ba18ce4a426d.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
BIN
sprites/logo.png
Normal file
After Width: | Height: | Size: 20 KiB |
34
sprites/logo.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://wr3ns0ywb75q"
|
||||||
|
path="res://.godot/imported/logo.png-9048fb90decc23e071a5e31cbd95178e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/logo.png"
|
||||||
|
dest_files=["res://.godot/imported/logo.png-9048fb90decc23e071a5e31cbd95178e.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
|
BIN
sprites/ui/greenBtn.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
34
sprites/ui/greenBtn.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://clakkue2mohs4"
|
||||||
|
path="res://.godot/imported/greenBtn.png-4d4dd91a26d599b1f56f508992a67f2c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/ui/greenBtn.png"
|
||||||
|
dest_files=["res://.godot/imported/greenBtn.png-4d4dd91a26d599b1f56f508992a67f2c.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
|
BIN
sprites/ui/redBtn.png
Normal file
After Width: | Height: | Size: 1 KiB |
34
sprites/ui/redBtn.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cd8mirubbhn10"
|
||||||
|
path="res://.godot/imported/redBtn.png-e2a2e519f53fb6bff43505aa9622a1cf.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/ui/redBtn.png"
|
||||||
|
dest_files=["res://.godot/imported/redBtn.png-e2a2e519f53fb6bff43505aa9622a1cf.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
|
BIN
sprites/world/boxersOfAmericaFrame.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
34
sprites/world/boxersOfAmericaFrame.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d1u3w61r0uv7p"
|
||||||
|
path="res://.godot/imported/boxersOfAmericaFrame.png-305851a525e3ee9fbe3ec9956a4aa80b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/world/boxersOfAmericaFrame.png"
|
||||||
|
dest_files=["res://.godot/imported/boxersOfAmericaFrame.png-305851a525e3ee9fbe3ec9956a4aa80b.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
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
@ -3,15 +3,15 @@
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bi7ayrxnn7hex"
|
uid="uid://bi7ayrxnn7hex"
|
||||||
path="res://.godot/imported/icrazy_frame.svg-032c353b0b85ae71d6c5843b8929a60c.ctex"
|
path="res://.godot/imported/icrazy_frame.svg-96baf65adc7b6794f97c6c0d94fcce08.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://sprites/clothes/icrazy_frame.svg"
|
source_file="res://sprites/world/icrazy_frame.svg"
|
||||||
dest_files=["res://.godot/imported/icrazy_frame.svg-032c353b0b85ae71d6c5843b8929a60c.ctex"]
|
dest_files=["res://.godot/imported/icrazy_frame.svg-96baf65adc7b6794f97c6c0d94fcce08.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|