diff --git a/.gdignore b/.gdignore index 1dd8473..2c49341 100644 --- a/.gdignore +++ b/.gdignore @@ -1,607 +1,3 @@ -# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig -# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio -# 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/* -*.cfg \ No newline at end of file +docs +*.md +.idea \ No newline at end of file diff --git a/.gitignore b/.gitignore index bbbd981..c6b96f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ # File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig -# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio -# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,rider,macos,linux,godot,executable,backup,visualstudio +# Created by https://www.toptal.com/developers/gitignore/api/windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup +# Edit at https://www.toptal.com/developers/gitignore?templates=windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup ### Backup ### *.bak @@ -9,6 +9,15 @@ *.orig *.tmp +### DotnetCore ### +# .NET Core build folders +bin/ +obj/ + +# Common node modules locations +/node_modules +/wwwroot/node_modules + ### Executable ### *.app *.bat @@ -86,84 +95,15 @@ Temporary Items # 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 +### MonoDevelop ### +#User Specific +*.userprefs +*.usertasks -# 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 +#Mono Project Files +*.pidb +*.resources +test-results/ ### VisualStudioCode ### .vscode/* @@ -184,6 +124,21 @@ fabric.properties .history .ionide +### Web ### +*.asp +*.cer +*.csr +*.css +*.htm +*.html +*.js +*.jsp +*.php +*.rss +*.wasm +*.wat +*.xhtml + ### Windows ### # Windows thumbnail cache files Thumbs.db @@ -210,396 +165,7 @@ $RECYCLE.BIN/ # 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 +# End of https://www.toptal.com/developers/gitignore/api/windows,web,visualstudiocode,monodevelop,macos,linux,godot,executable,dotnetcore,backup # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) -*.cfg \ No newline at end of file diff --git a/README.md b/README.md index 59f90ef..c0f3ba3 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,9 @@ # Dress Up Zack -![](screenshot.png) - -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. +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. ## 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 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. \ No newline at end of file +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. diff --git a/addons/SpritesheetGenerator/Checker.png b/addons/SpritesheetGenerator/Checker.png new file mode 100644 index 0000000..f147f72 Binary files /dev/null and b/addons/SpritesheetGenerator/Checker.png differ diff --git a/sprites/clothes/fullbody/coat.png.import b/addons/SpritesheetGenerator/Checker.png.import similarity index 67% rename from sprites/clothes/fullbody/coat.png.import rename to addons/SpritesheetGenerator/Checker.png.import index 80ab828..7bcd8ec 100644 --- a/sprites/clothes/fullbody/coat.png.import +++ b/addons/SpritesheetGenerator/Checker.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cgnumy58myojg" -path="res://.godot/imported/coat.png-4037539685e6b05d1d6a40884d2dd944.ctex" +uid="uid://bnkl8rujlgv0h" +path="res://.godot/imported/Checker.png-95b82ca4c05ab143e1e16c56d598421b.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://sprites/clothes/fullbody/coat.png" -dest_files=["res://.godot/imported/coat.png-4037539685e6b05d1d6a40884d2dd944.ctex"] +source_file="res://addons/SpritesheetGenerator/Checker.png" +dest_files=["res://.godot/imported/Checker.png-95b82ca4c05ab143e1e16c56d598421b.ctex"] [params] diff --git a/addons/SpritesheetGenerator/SpriteSheetGenerator.gd b/addons/SpritesheetGenerator/SpriteSheetGenerator.gd new file mode 100644 index 0000000..cbb9bbe --- /dev/null +++ b/addons/SpritesheetGenerator/SpriteSheetGenerator.gd @@ -0,0 +1,13 @@ +@tool +extends EditorPlugin + +func _enter_tree() -> void: + add_tool_menu_item("Open Spritesheet Generator", run_generator) + get_editor_interface().get_command_palette().add_command("Open Spritesheet Generator", "addons/open_spritesheet_generator", run_generator) + +func _exit_tree() -> void: + remove_tool_menu_item("Open Spritesheet Generator") + get_editor_interface().get_command_palette().remove_command("addons/open_spritesheet_generator") + +func run_generator(): + get_editor_interface().play_custom_scene("res://addons/SpritesheetGenerator/SpritesheetGenerator.tscn") diff --git a/addons/SpritesheetGenerator/SpritesheetFrame.tscn b/addons/SpritesheetGenerator/SpritesheetFrame.tscn new file mode 100644 index 0000000..790cf62 --- /dev/null +++ b/addons/SpritesheetGenerator/SpritesheetFrame.tscn @@ -0,0 +1,77 @@ +[gd_scene load_steps=3 format=3 uid="uid://cd5wndu01c1sn"] + +[sub_resource type="StyleBoxFlat" id="2"] +resource_local_to_scene = true +bg_color = Color(0, 0.501961, 0.501961, 1) + +[sub_resource type="GDScript" id="3"] +resource_name = "Prefab" +script/source = "extends PanelContainer + +var odd: Vector2 + +func set_frame_margin(margin: Vector2): + $MarginContainer.add_theme_constant_override(&\"margin_left\", margin.x) + $MarginContainer.add_theme_constant_override(&\"margin_top\", margin.y) + + margin += odd + + $MarginContainer.add_theme_constant_override(&\"margin_right\", margin.x) + $MarginContainer.add_theme_constant_override(&\"margin_bottom\", margin.y) + +func set_texture(texture: Texture2D): + %TextureRect.texture = texture + odd = Vector2(int(get_texture_size().x) % 2, int(get_texture_size().y) % 2) + +func get_texture_size() -> Vector2: + return %TextureRect.texture.get_size() + +func get_position2() -> Vector2: + return position + %TextureRect.position + +func get_texture_data() -> Image: + return %TextureRect.texture.get_image() + +func set_display_background(display: bool): + get_theme_stylebox(&\"panel\").draw_center = display + +func set_background_color(color: Color): + get_theme_stylebox(&\"panel\").bg_color = color + +func _get_drag_data(p: Vector2): + var preview = TextureRect.new() + preview.texture = %TextureRect.texture + preview.ignore_texture_size = true + preview.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED + preview.size = Vector2(64, 64) + set_drag_preview(preview) + return {type = \"SpritesheetFrame\", node = self} + +func _can_drop_data(p: Vector2, data) -> bool: + return data is Dictionary and data.get(\"type\", \"\") == \"SpritesheetFrame\" + +func _drop_data(p: Vector2, data) -> void: + var index = get_index() + get_parent().move_child(self, data.node.get_index()) + get_parent().move_child(data.node, index) + get_tree().current_scene.refresh_grid() + +func _gui_input(event: InputEvent) -> void: + if event is InputEventMouseButton: + if event.pressed and event.button_index == MOUSE_BUTTON_RIGHT: + get_tree().current_scene.remove_frame.call_deferred(self) +" + +[node name="FramePrefab" type="PanelContainer" groups=["frame"]] +theme_override_styles/panel = SubResource("2") +script = SubResource("3") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 2 +mouse_filter = 2 + +[node name="TextureRect" type="TextureRect" parent="MarginContainer"] +unique_name_in_owner = true +texture_filter = 1 +layout_mode = 2 +stretch_mode = 4 diff --git a/addons/SpritesheetGenerator/SpritesheetGenerator.tscn b/addons/SpritesheetGenerator/SpritesheetGenerator.tscn new file mode 100644 index 0000000..c064e03 --- /dev/null +++ b/addons/SpritesheetGenerator/SpritesheetGenerator.tscn @@ -0,0 +1,714 @@ +[gd_scene load_steps=5 format=3 uid="uid://bf3b0i8scthbm"] + +[ext_resource type="Texture2D" uid="uid://bnkl8rujlgv0h" path="res://addons/SpritesheetGenerator/Checker.png" id="1_hs1uu"] + +[sub_resource type="GDScript" id="1"] +resource_name = "Generator" +script/source = "extends Control + +const SUPPORTED_FORMATS: PackedStringArray = [\"bmp\", \"dds\", \"exr\", \"hdr\", \"jpg\", \"jpeg\", \"png\", \"tga\", \"svg\", \"svgz\", \"webp\"] + +@onready var grid := %GridContainer + +var file_list: Array +var image_list: Array +var texture_list: Array + +var images_to_process: Array +var images_to_texturize: Array +var first_time := true +var image_count: int +var output_path: String + +var auto := true +var margin := Vector2.ONE + +var pan_origin: Vector2 +var pan_start: Vector2 + +signal images_processed + +func _enter_tree() -> void: + $SplitDialog.hide() + $StashDialog.hide() + +func _ready(): + $Status.text = $Status.text % \", \".join(SUPPORTED_FORMATS) + + get_viewport().files_dropped.connect(load_files) + grid.minimum_size_changed.connect(refresh_background) + set_process(false) + +func refresh_background(): + %Background.custom_minimum_size = grid.get_minimum_size() + +func load_files(files: PackedStringArray): + file_list.clear() + image_list.clear() + + %CustomName.text = \"\" + %Reload.disabled = false + %SavePNG.disabled = false + + if files.size() == 1 and not FileAccess.file_exists(files[0]): + var dir := DirAccess.open(files[0]) + if not dir: + show_error(\"Can't open directory.\") + return + + for file in dir.get_files(): + if file.get_extension() in SUPPORTED_FORMATS: + file_list.append(str(dir.get_current_dir().path_join(file))) + else: + var wrong_count: int + for file in files: + if file.get_extension() in SUPPORTED_FORMATS: + file_list.append(file) + else: + wrong_count += 1 + + if wrong_count > 0: + show_error(\"Skipped %s file(s) with unsupported extension.\" % wrong_count) + + if file_list.is_empty(): + show_error(\"No valid files or directories to process.\") + return + + load_images() + +func load_images(): + texture_list.clear() + + for image in grid.get_children(): + image.free() + + for image in %StashImages.get_children(): + image.free() + update_stash() + + var size_map: Dictionary + + if not file_list.is_empty(): + image_list = file_list.map(func(file: String): + var image := Image.load_from_file(file) + if image: + image.set_meta(&\"path\", file) + return image) + + for image in image_list: + if not image: + continue + + if not image.get_size() in size_map: + size_map[image.get_size()] = [] + size_map[image.get_size()].append(image) + + var output_name: String + var most_common_size: Vector2i + var most_common_count: int + + for size in size_map: + if size_map[size].size() > most_common_count: + most_common_size = size + most_common_count = size_map[size].size() + + for image in size_map[most_common_size]: + if output_path.is_empty(): + var path: String = image.get_meta(&\"path\", \"\") + output_path = path.get_base_dir() + output_name = path.get_base_dir().get_file() + + images_to_process.append(image) + size_map.clear() + + if not output_name.is_empty() and %CustomName.text.is_empty(): + %CustomName.text = output_name + update_save_button() + + if images_to_process.size() < file_list.size(): + show_error(\"Rejected %s image(s) due to size mismatch.\" % (file_list.size() - images_to_process.size())) + + if images_to_process.size() == 1: + if file_list.size() > 1: + images_to_process.clear() + show_error(\"Only one dropped image was valid.\") + else: + %SplitPreview.texture = ImageTexture.create_from_image(images_to_process[0]) + $SplitDialog.reset_size() + $SplitDialog.popup_centered() + + return + + $Status.show() + %CenterContainer.hide() + + image_count = images_to_process.size() + %Columns.max_value = image_count + + threshold = %Threshold.value + min_x = 9999999 + min_y = 9999999 + max_x = -9999999 + max_y = -9999999 + + set_process(true) + + await images_processed + + for texture in texture_list: + add_frame(texture) + + toggle_auto(auto) + refresh_margin() + + $Status.hide() + %CenterContainer.show() + +var threshold: float +var min_x: int +var min_y: int +var max_x: int +var max_y: int + +func _process(delta: float) -> void: + if not images_to_process.is_empty(): + var image: Image = images_to_process.pop_front() + $Status.text = str(\"Preprocessing image \", image_count - images_to_process.size(), \"/\", image_count) + + for x in image.get_width(): + for y in image.get_height(): + if image.get_pixel(x, y).a >= threshold: + min_x = mini(min_x, x) + min_y = mini(min_y, y) + max_x = maxi(max_x, x) + max_y = maxi(max_y, y) + + images_to_texturize.append(image) + elif not images_to_texturize.is_empty(): + var rect := Rect2i(min_x, min_y, max_x - min_x + 1, max_y - min_y + 1) + var image: Image = images_to_texturize.pop_front() + $Status.text = str(\"Creating texture \", image_count - images_to_texturize.size(), \"/\", image_count) + + var true_image := Image.create(rect.size.x, rect.size.y, false, image.get_format()) + true_image.blit_rect(image, rect, Vector2()) + + var texture := ImageTexture.create_from_image(true_image) + texture_list.append(texture) + + if images_to_texturize.is_empty(): + set_process(false) + images_processed.emit() + if first_time: + recenter() + first_time = false + +func toggle_grid(show: bool) -> void: + get_tree().call_group(&\"frame\", &\"set_display_background\", show) + +func toggle_auto(button_pressed: bool) -> void: + %Columns.editable = not button_pressed + auto = button_pressed + + if button_pressed: + var best: int + var best_score = -9999999 + + for i in range(1, image_count + 1): + var cols = i + var rows = ceili(image_count / float(i)) + + var score = image_count - cols * rows - maxi(cols, rows) - rows + if score > best_score: + best = i + best_score = score + + grid.columns = best + else: + grid.columns = %Columns.value + refresh_grid() + +func hmargin_changed(value: float) -> void: + margin.x = value + refresh_margin() + +func vmargin_changed(value: float) -> void: + margin.y = value + refresh_margin() + +func refresh_margin(): + get_tree().call_group(&\"frame\", &\"set_frame_margin\", margin) + +func columns_changed(value: float) -> void: + grid.columns = value + refresh_grid() + +func refresh_grid(): + var coord: Vector2 + var dark = false + + for rect in grid.get_children(): + rect.set_background_color(Color(0, 0, 0, 0.2 if dark else 0.1)) + dark = not dark + coord.x += 1 + + if coord.x == grid.columns: + coord.x = 0 + coord.y += 1 + dark = int(coord.y) % 2 == 1 + +func save_png() -> void: + var image_size: Vector2 = grid.get_child(0).get_minimum_size() + + var image := Image.create(image_size.x * grid.columns, image_size.y * (ceil(grid.get_child_count() / float(grid.columns))), false, Image.FORMAT_RGBA8) + + for rect in grid.get_children(): + image.blit_rect(rect.get_texture_data(), Rect2(Vector2(), image_size), rect.get_position2()) + + image.save_png(output_path.path_join(%CustomName.text) + \".png\") + +func show_error(text: String): + if not %Error.visible: + %Error.show() + else: + %Error.text += \"\\n\" + %Error.text += text + %Timer.start() + +func error_hidden() -> void: + %Error.text = \"\" + +func _input(event: InputEvent) -> void: + if event is InputEventMouseButton: + var cc: Control = %CenterContainer + + if event.button_index == MOUSE_BUTTON_MIDDLE: + if event.pressed: + pan_origin = get_local_mouse_position() + pan_start = cc.position + else: + pan_origin = Vector2() + + if event.button_index == MOUSE_BUTTON_WHEEL_DOWN: + var lm = cc.get_local_mouse_position() + cc.scale -= Vector2.ONE * 0.05 + if cc.scale.x <= 0: + cc.scale = Vector2.ONE * 0.05 + + cc.position -= (lm - cc.get_local_mouse_position()) * cc.scale + elif event.button_index == MOUSE_BUTTON_WHEEL_UP: + var lm = cc.get_local_mouse_position() + cc.scale += Vector2.ONE * 0.05 + cc.position -= (lm - cc.get_local_mouse_position()) * cc.scale + + if event is InputEventMouseMotion: + if pan_origin != Vector2(): + %CenterContainer.position = pan_start + (get_local_mouse_position() - pan_origin) + +func recenter() -> void: + %CenterContainer.position = get_viewport().size / 2 - Vector2i(%CenterContainer.size) / 2 + %CenterContainer.scale = Vector2.ONE + +func update_split_preview(): + %SplitPreview.queue_redraw() + +func draw_split_preview() -> void: + var preview: TextureRect = %SplitPreview + var frame_count := Vector2(%SplitX.value, %SplitY.value) + var frame_size := preview.size / frame_count + + for x in range(1, frame_count.x): + for y in int(frame_count.y): + preview.draw_line(frame_size * Vector2(x, y), frame_size * Vector2(x, y + 1), Color.WHITE) + preview.draw_line(frame_size * Vector2(x, y) + Vector2.RIGHT, frame_size * Vector2(x, y + 1) + Vector2.RIGHT, Color.BLACK) + + for y in range(1, frame_count.y): + for x in int(frame_count.x): + preview.draw_line(frame_size * Vector2(x, y), frame_size * Vector2(x + 1, y), Color.WHITE) + preview.draw_line(frame_size * Vector2(x, y) + Vector2.DOWN, frame_size * Vector2(x + 1, y) + Vector2.DOWN, Color.BLACK) + +func split_spritesheet() -> void: + file_list.clear() + image_list.clear() + + var image: Image = images_to_process[0] + var sub_image_size := image.get_size() / Vector2i(%SplitX.value, %SplitY.value) + + for y in %SplitY.value: + for x in %SplitX.value: + image_list.append(image.get_region(Rect2i(Vector2i(x, y) * sub_image_size, sub_image_size))) + + images_to_process.clear() + load_images() + +func remove_frame(frame): + var image: Image = frame.get_texture_data() + var texture := ImageTexture.create_from_image(image) + + var button := TextureButton.new() + button.texture_normal = texture + button.custom_minimum_size = Vector2(128, 128) + button.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT_CENTERED + button.ignore_texture_size = true + button.pressed.connect(re_add_image.bind(button), CONNECT_DEFERRED) + %StashImages.add_child(button) + + var ref := ReferenceRect.new() + button.add_child(ref) + ref.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) + ref.mouse_filter = Control.MOUSE_FILTER_IGNORE + ref.editor_only = false + + frame.free() + refresh_grid() + update_stash() + +func update_stash(): + %Stash.disabled = %StashImages.get_child_count() == 0 + +func re_add_image(tb: TextureButton): + add_frame(tb.texture_normal) + tb.free() + refresh_grid() + update_stash() + + if %Stash.disabled: + $StashDialog.hide() + +func add_frame(texture: Texture2D): + var rect := preload(\"res://addons/SpritesheetGenerator/SpritesheetFrame.tscn\").instantiate() + rect.set_texture(texture) + rect.set_display_background(%DisplayGrid.button_pressed) + rect.set_frame_margin(margin) + grid.add_child(rect) + +func update_save_button() -> void: + %SavePNG.disabled = %CustomName.text.is_empty() +" + +[sub_resource type="StyleBoxFlat" id="5"] +content_margin_left = 20.0 +content_margin_top = 20.0 +content_margin_right = 20.0 +content_margin_bottom = 20.0 +bg_color = Color(0, 0, 0, 0.25098) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_kjgn5"] +texture = ExtResource("1_hs1uu") +axis_stretch_horizontal = 1 +axis_stretch_vertical = 1 + +[node name="Main" type="HBoxContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +script = SubResource("1") + +[node name="MarginContainer" type="PanelContainer" parent="."] +layout_mode = 2 +theme_override_styles/panel = SubResource("5") + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +layout_mode = 2 +theme_override_constants/separation = 10 + +[node name="Label5" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Alpha Threshold" +horizontal_alignment = 1 + +[node name="Threshold" type="SpinBox" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +max_value = 1.0 +step = 0.005 +value = 0.9 + +[node name="Reload" type="Button" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +disabled = true +text = "Reload" + +[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Columns" +horizontal_alignment = 1 + +[node name="Columns" type="SpinBox" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +min_value = 1.0 +value = 1.0 +editable = false + +[node name="Grid" type="CheckButton" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +button_pressed = true +text = "Auto" + +[node name="Label3" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Horizontal Margin" +horizontal_alignment = 1 + +[node name="MarginH" type="SpinBox" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +value = 1.0 +suffix = "px" + +[node name="Label4" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Vertical Margin" +horizontal_alignment = 1 + +[node name="MarginV" type="SpinBox" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +max_value = 128.0 +value = 1.0 +suffix = "px" + +[node name="Stash" type="Button" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +disabled = true +text = "Image Stash" + +[node name="HSeparator2" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Button" type="Button" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Recenter View +" + +[node name="DisplayGrid" type="CheckBox" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +button_pressed = true +text = "Show Grid" + +[node name="HSeparator3" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="CustomName" type="LineEdit" parent="MarginContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +placeholder_text = "Image Name" + +[node name="SavePNG" type="Button" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +disabled = true +text = "Save PNG" + +[node name="Status" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Drop folder or image files here to start. + +Images should be of the same size. If their sizes don't match, the generator will try to use the dominating size. + +The images will be automatically cropped based on the Alpha Threshold value. Greater value means more exact crop. + +Supported formats: %s + +If you drop a single image, the generator will instead edit it as spritesheet." +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="View" type="CanvasLayer" parent="."] +layer = -1 + +[node name="CenterContainer" type="CenterContainer" parent="View"] +unique_name_in_owner = true +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 + +[node name="Background" type="ColorRect" parent="View/CenterContainer"] +unique_name_in_owner = true +layout_mode = 2 +mouse_filter = 1 +color = Color(0, 0.501961, 0.501961, 1) + +[node name="GridContainer" type="GridContainer" parent="View/CenterContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme_override_constants/h_separation = 0 +theme_override_constants/v_separation = 0 +columns = 3 + +[node name="VBoxContainer" type="GridContainer" parent="View"] +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -40.0 +grow_horizontal = 0 +grow_vertical = 0 +mouse_filter = 2 +columns = 3 + +[node name="Label" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "LMB" +horizontal_alignment = 1 + +[node name="VSeparator" type="VSeparator" parent="View/VBoxContainer"] +layout_mode = 2 + +[node name="Label2" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "rearrange images" + +[node name="Label3" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "RMB" +horizontal_alignment = 1 + +[node name="VSeparator2" type="VSeparator" parent="View/VBoxContainer"] +layout_mode = 2 + +[node name="Label4" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "delete images" + +[node name="Label5" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "MMB" +horizontal_alignment = 1 + +[node name="VSeparator3" type="VSeparator" parent="View/VBoxContainer"] +layout_mode = 2 + +[node name="Label6" type="Label" parent="View/VBoxContainer"] +layout_mode = 2 +text = "pan view" + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="Error" type="Label" parent="CanvasLayer"] +unique_name_in_owner = true +modulate = Color(1, 0, 0, 1) +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -14.0 +grow_horizontal = 2 +grow_vertical = 0 +size_flags_vertical = 0 +horizontal_alignment = 1 + +[node name="Timer" type="Timer" parent="CanvasLayer"] +unique_name_in_owner = true +wait_time = 5.0 +one_shot = true + +[node name="SplitDialog" type="ConfirmationDialog" parent="."] +title = "Edit Spritesheet" +position = Vector2i(-500, 0) +size = Vector2i(272, 343) +visible = true + +[node name="VBoxContainer" type="VBoxContainer" parent="SplitDialog"] +offset_left = 8.0 +offset_top = 8.0 +offset_right = 264.0 +offset_bottom = 294.0 + +[node name="Label" type="Label" parent="SplitDialog/VBoxContainer"] +layout_mode = 2 +text = "Split Frames" +horizontal_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="SplitDialog/VBoxContainer"] +layout_mode = 2 +alignment = 1 + +[node name="SplitX" type="SpinBox" parent="SplitDialog/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +min_value = 1.0 +max_value = 1000.0 +value = 1.0 +select_all_on_focus = true + +[node name="Label" type="Label" parent="SplitDialog/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "x" + +[node name="SplitY" type="SpinBox" parent="SplitDialog/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +min_value = 1.0 +max_value = 1000.0 +value = 1.0 +select_all_on_focus = true + +[node name="CenterContainer" type="CenterContainer" parent="SplitDialog/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="PanelContainer" type="PanelContainer" parent="SplitDialog/VBoxContainer/CenterContainer"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxTexture_kjgn5") + +[node name="SplitPreview" type="TextureRect" parent="SplitDialog/VBoxContainer/CenterContainer/PanelContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="StashDialog" type="AcceptDialog" parent="."] +title = "Image Stash" +position = Vector2i(-500, 500) +size = Vector2i(309, 100) +visible = true + +[node name="VBoxContainer" type="VBoxContainer" parent="StashDialog"] +offset_left = 8.0 +offset_top = 8.0 +offset_right = 301.0 +offset_bottom = 51.0 + +[node name="Label" type="Label" parent="StashDialog/VBoxContainer"] +layout_mode = 2 +text = "Click frame to re-add it to spritesheet." +horizontal_alignment = 1 + +[node name="StashImages" type="HFlowContainer" parent="StashDialog/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[connection signal="pressed" from="MarginContainer/VBoxContainer/Reload" to="." method="load_images"] +[connection signal="value_changed" from="MarginContainer/VBoxContainer/Columns" to="." method="columns_changed"] +[connection signal="toggled" from="MarginContainer/VBoxContainer/Grid" to="." method="toggle_auto"] +[connection signal="value_changed" from="MarginContainer/VBoxContainer/MarginH" to="." method="hmargin_changed"] +[connection signal="value_changed" from="MarginContainer/VBoxContainer/MarginV" to="." method="vmargin_changed"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/Stash" to="StashDialog" method="popup_centered_ratio" binds= [0.5]] +[connection signal="pressed" from="MarginContainer/VBoxContainer/Button" to="." method="recenter"] +[connection signal="toggled" from="MarginContainer/VBoxContainer/DisplayGrid" to="." method="toggle_grid"] +[connection signal="text_changed" from="MarginContainer/VBoxContainer/HBoxContainer/CustomName" to="." method="update_save_button" unbinds=1] +[connection signal="pressed" from="MarginContainer/VBoxContainer/SavePNG" to="." method="save_png"] +[connection signal="hidden" from="CanvasLayer/Error" to="." method="error_hidden"] +[connection signal="timeout" from="CanvasLayer/Timer" to="CanvasLayer/Error" method="hide"] +[connection signal="confirmed" from="SplitDialog" to="." method="split_spritesheet"] +[connection signal="value_changed" from="SplitDialog/VBoxContainer/HBoxContainer/SplitX" to="." method="update_split_preview" unbinds=1] +[connection signal="value_changed" from="SplitDialog/VBoxContainer/HBoxContainer/SplitY" to="." method="update_split_preview" unbinds=1] +[connection signal="draw" from="SplitDialog/VBoxContainer/CenterContainer/PanelContainer/SplitPreview" to="." method="draw_split_preview"] diff --git a/addons/SpritesheetGenerator/plugin.cfg b/addons/SpritesheetGenerator/plugin.cfg new file mode 100644 index 0000000..08a28bf --- /dev/null +++ b/addons/SpritesheetGenerator/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Spritesheet Generator" +description="Generates cropped spritesheets from multiple images." +author="KoBeWi" +version="1.2" +script="SpriteSheetGenerator.gd" diff --git a/project.godot b/project.godot index d565706..cefdef2 100644 --- a/project.godot +++ b/project.godot @@ -24,7 +24,7 @@ name_sv="Tonys klä upp" [autoload] -Config="*res://scripts/config.gd" +Global="*res://scripts/global.gd" [debug] @@ -32,18 +32,14 @@ gdscript/completion/autocomplete_setters_and_getters=true [display] -window/size/viewport_width=600 -window/size/viewport_height=400 +window/size/viewport_width=800 +window/size/viewport_height=500 +window/size/resizable=false window/energy_saving/keep_screen_on=false -window/stretch/mode="viewport" - -[dotnet] - -project/assembly_name="Dress Up Zack" [editor_plugins] -enabled=PackedStringArray("res://addons/fontawesome/plugin.cfg") +enabled=PackedStringArray("res://addons/SpritesheetGenerator/plugin.cfg", "res://addons/fontawesome/plugin.cfg") [file_customization] diff --git a/scenes/character.tscn b/scenes/character.tscn index 7752635..5a5d1bc 100644 --- a/scenes/character.tscn +++ b/scenes/character.tscn @@ -2,9 +2,9 @@ [ext_resource type="Script" path="res://scripts/character.gd" id="1_k1mtq"] [ext_resource type="Texture2D" uid="uid://cddou4chwo8h2" path="res://sprites/character/tail/tail0.svg" id="2"] +[ext_resource type="Texture2D" uid="uid://dxpvahpmr14ty" path="res://sprites/character/character_base.png" id="2_p4oam"] [ext_resource type="Texture2D" uid="uid://cnd3v8cerplqq" path="res://sprites/character/tail/tail1.svg" id="3"] [ext_resource type="Texture2D" uid="uid://djv0p7rxujbd4" path="res://sprites/character/tail/tail2.svg" id="4"] -[ext_resource type="Texture2D" uid="uid://3rmb0kj376t1" path="res://sprites/character/zack.png" id="5_i8wm6"] [ext_resource type="Texture2D" uid="uid://dnwdyi2d46hsm" path="res://sprites/character/eyes/eyes1.png" id="6"] [ext_resource type="Texture2D" uid="uid://cbr37emgh11is" path="res://sprites/character/eyes/eyes2.png" id="7"] [ext_resource type="Texture2D" uid="uid://ceifal0sxn0r7" path="res://sprites/character/eyes/eyes3.png" id="8"] @@ -123,18 +123,20 @@ script = ExtResource("1_k1mtq") position = Vector2(-33.7592, 99.4079) scale = Vector2(0.927713, 1) sprite_frames = SubResource("1") -frame_progress = 0.185576 +frame_progress = 0.642539 +metadata/_edit_lock_ = true [node name="Body" type="Sprite2D" parent="."] position = Vector2(12, 81) -texture = ExtResource("5_i8wm6") +texture = ExtResource("2_p4oam") +metadata/_edit_lock_ = true [node name="Eyes" type="AnimatedSprite2D" parent="."] position = Vector2(28.6857, -15.7785) sprite_frames = SubResource("2") -frame_progress = 0.102847 +frame_progress = 0.55981 [node name="Mouth" type="AnimatedSprite2D" parent="."] position = Vector2(49.1195, -14.3155) sprite_frames = SubResource("3") -frame_progress = 0.222902 +frame_progress = 0.679866 diff --git a/scenes/demo.tscn b/scenes/demo.tscn new file mode 100644 index 0000000..5337085 --- /dev/null +++ b/scenes/demo.tscn @@ -0,0 +1,18 @@ +[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) diff --git a/scenes/game.tscn b/scenes/game.tscn index b944a4a..d8201a7 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,148 +1,49 @@ -[gd_scene load_steps=13 format=3 uid="uid://cvr2aries2lhr"] +[gd_scene load_steps=9 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://bi7ayrxnn7hex" path="res://sprites/world/icrazy_frame.svg" id="2_n1kmf"] +[ext_resource type="Texture2D" uid="uid://bi7ayrxnn7hex" path="res://sprites/clothes/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://d1u3w61r0uv7p" path="res://sprites/world/boxersOfAmericaFrame.png" id="4_327cy"] +[ext_resource type="Texture2D" uid="uid://dteiup73cqn4o" path="res://sprites/clothes/lights.png" id="3_bbsyl"] +[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="SpriteFrames" uid="uid://bhyon1s1op8ly" path="res://scenes/items.tres" id="7_3ykci"] -[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://cl0wwlm6yw0ug" path="res://sprites/ui/fullbodyBtn.png" id="15_rfctk"] -[ext_resource type="Texture2D" uid="uid://nc0wkek55yhu" path="res://sprites/ui/seperateBtn.png" id="16_px53c"] -[ext_resource type="Texture2D" uid="uid://wr3ns0ywb75q" path="res://sprites/logo.png" id="16_y58oj"] +[ext_resource type="PackedScene" uid="uid://bvbelmb6rvy4f" path="res://scenes/platform.tscn" id="7_vqx6c"] +[ext_resource type="Texture2D" uid="uid://venieklgphn5" path="res://sprites/clothes/blue_camo_jeans.svg" id="8_bqcl8"] [node name="Game" type="Node"] -script = ExtResource("1_qt3fe") -[node name="World" type="Node2D" parent="."] - -[node name="Background" type="Sprite2D" parent="World"] -position = Vector2(306.682, 204.039) -scale = Vector2(0.618038, 0.725217) +[node name="Background" type="Sprite2D" parent="."] +position = Vector2(400, 240) texture = ExtResource("1_uee2i") +metadata/_edit_lock_ = true -[node name="Stand" type="Sprite2D" parent="World"] -position = Vector2(321.326, 368.764) +[node name="Stand" type="Sprite2D" parent="."] +position = Vector2(125, 461) +scale = Vector2(1.28991, 1.3328) texture = ExtResource("2_q0w7j") -[node name="BoxersOfAmericaFrame" type="Sprite2D" parent="World"] -position = Vector2(77.9707, 272.449) -texture = ExtResource("4_327cy") - -[node name="iCrazyFrame" type="Sprite2D" parent="World"] -position = Vector2(74.389, 113.776) -scale = Vector2(0.700948, 0.7129) +[node name="PictureFrame" type="Sprite2D" parent="."] +position = Vector2(107.454, 127.574) 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")] -position = Vector2(313.61, 133.222) +position = Vector2(117, 234) +metadata/_edit_lock_ = true -[node name="Bottoms" type="AnimatedSprite2D" parent="."] -position = Vector2(316.681, 303.715) -sprite_frames = ExtResource("7_3ykci") -animation = &"bottoms" +[node name="Bottoms" parent="." groups=["pants"] instance=ExtResource("7_vqx6c")] +position = Vector2(120, 409) -[node name="Tops" type="AnimatedSprite2D" parent="."] -position = Vector2(325.091, 213.195) -sprite_frames = ExtResource("7_3ykci") -animation = &"tops" +[node name="Platform" parent="." groups=["pants"] instance=ExtResource("7_vqx6c")] +position = Vector2(335, 78) -[node name="Fullbody" type="AnimatedSprite2D" parent="."] -visible = false -position = Vector2(558.266, 434.335) -sprite_frames = ExtResource("7_3ykci") -animation = &"fullbody" +[node name="Object" parent="." instance=ExtResource("6_6t4pu")] +position = Vector2(335, 79) +group = "pants" +texture = ExtResource("8_bqcl8") -[node name="Logo" type="Sprite2D" parent="."] -position = Vector2(546.704, 311.642) -scale = Vector2(0.172412, 0.162644) -texture = ExtResource("16_y58oj") - -[node name="CanvasLayer" type="CanvasLayer" parent="."] - -[node name="UI" 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_use_anchors_ = true - -[node name="TopsFwdBtn" type="TextureButton" parent="CanvasLayer/UI"] -layout_mode = 0 -anchor_left = 0.735474 -anchor_top = 0.406494 -anchor_right = 0.807141 -anchor_bottom = 0.563994 -texture_normal = ExtResource("14_yk2bu") -stretch_mode = 4 -metadata/_edit_use_anchors_ = true - -[node name="TopsBckBtn" type="TextureButton" parent="CanvasLayer/UI"] -layout_mode = 0 -anchor_left = 0.236586 -anchor_top = 0.399881 -anchor_right = 0.308252 -anchor_bottom = 0.55738 -offset_bottom = 1.04904e-05 -texture_normal = ExtResource("15_g5gd1") -metadata/_edit_use_anchors_ = true - -[node name="BottomsBckBtn" type="TextureButton" parent="CanvasLayer/UI"] -layout_mode = 1 -anchors_preset = -1 -anchor_left = 0.230677 -anchor_top = 0.61427 -anchor_right = 0.302344 -anchor_bottom = 0.77177 -offset_bottom = -2.28882e-05 -texture_normal = ExtResource("15_g5gd1") -stretch_mode = 4 -metadata/_edit_use_anchors_ = true - -[node name="BottomsFwdBtn" type="TextureButton" parent="CanvasLayer/UI"] -layout_mode = 1 -anchors_preset = -1 -anchor_left = 0.736785 -anchor_top = 0.613892 -anchor_right = 0.808452 -anchor_bottom = 0.771392 -offset_left = -1.4782e-05 -texture_normal = ExtResource("14_yk2bu") -stretch_mode = 4 -metadata/_edit_use_anchors_ = true - -[node name="FullbodyBtn" type="TextureButton" parent="CanvasLayer/UI"] -layout_mode = 1 -anchors_preset = -1 -anchor_left = 0.265919 -anchor_top = 0.0531643 -anchor_right = 0.417585 -anchor_bottom = 0.115664 -offset_left = 1.14441e-05 -offset_right = 1.52588e-05 -texture_normal = ExtResource("15_rfctk") -stretch_mode = 4 -metadata/_edit_use_anchors_ = true - -[node name="SeparateBtn" type="TextureButton" parent="CanvasLayer/UI"] -layout_mode = 1 -anchors_preset = -1 -anchor_left = 0.666512 -anchor_top = 0.0395699 -anchor_right = 0.818178 -anchor_bottom = 0.10457 -offset_left = -1.14441e-05 -texture_normal = ExtResource("16_px53c") -stretch_mode = 4 -metadata/_edit_use_anchors_ = true - -[connection signal="pressed" from="CanvasLayer/UI/TopsFwdBtn" to="." method="_on_tops_fwd_btn_pressed"] -[connection signal="pressed" from="CanvasLayer/UI/TopsBckBtn" to="." method="_on_tops_bck_btn_pressed"] -[connection signal="pressed" from="CanvasLayer/UI/BottomsBckBtn" to="." method="_on_bottoms_bck_btn_pressed"] -[connection signal="pressed" from="CanvasLayer/UI/BottomsFwdBtn" to="." method="_on_bottoms_fwd_btn_pressed"] -[connection signal="pressed" from="CanvasLayer/UI/FullbodyBtn" to="." method="_on_fullbody_btn_pressed"] -[connection signal="pressed" from="CanvasLayer/UI/SeparateBtn" to="." method="_on_separate_btn_pressed"] +[node name="TileMap" type="TileMap" parent="."] +format = 2 diff --git a/scenes/items.tres b/scenes/items.tres deleted file mode 100644 index 310c47d..0000000 --- a/scenes/items.tres +++ /dev/null @@ -1,76 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=15 format=3 uid="uid://bhyon1s1op8ly"] - -[ext_resource type="Texture2D" uid="uid://wfsffpk4h8p" path="res://sprites/clothes/sweat_pants.png" id="1_5mrf2"] -[ext_resource type="Texture2D" uid="uid://b3xtl8c73nw30" path="res://sprites/clothes/beatup_jeans.png" id="2_0n07e"] -[ext_resource type="Texture2D" uid="uid://bl8w5mjjo4i73" path="res://sprites/clothes/jeans.png" id="3_7udtq"] -[ext_resource type="Texture2D" uid="uid://310b2835i5d8" path="res://sprites/clothes/dj_shirt.png" id="7_b8d0l"] -[ext_resource type="Texture2D" uid="uid://5heuxqo78jns" path="res://sprites/clothes/fullbody/canonrhode.png" id="7_iagv2"] -[ext_resource type="Texture2D" uid="uid://cgnumy58myojg" path="res://sprites/clothes/fullbody/coat.png" id="8_uraqp"] -[ext_resource type="Texture2D" uid="uid://6y443cg1s6up" path="res://sprites/clothes/fullbody/edsoutfit.png" id="9_osdr5"] -[ext_resource type="Texture2D" uid="uid://dt1tsnusorwv8" path="res://sprites/clothes/korm_shirt.png" id="10_81cd5"] -[ext_resource type="Texture2D" uid="uid://crgedi1ppq2ow" path="res://sprites/clothes/fullbody/formal.png" id="10_uqjix"] -[ext_resource type="Texture2D" uid="uid://b07kumnwr7c0w" path="res://sprites/clothes/fullbody/mario.png" id="11_ssvy5"] -[ext_resource type="Texture2D" uid="uid://c8xa7sal3omnm" path="res://sprites/clothes/fullbody/schoolgirl.png" id="12_3wtcm"] -[ext_resource type="Texture2D" uid="uid://b0sf2e2e5jfab" path="res://sprites/clothes/z_shirt.png" id="12_i81ab"] -[ext_resource type="Texture2D" uid="uid://lxsoletgafdk" path="res://sprites/clothes/fullbody/snowboarding.png" id="13_wlerh"] -[ext_resource type="Texture2D" uid="uid://cgxm7h4ukqpyh" path="res://sprites/clothes/fullbody/wendy.png" id="14_w0d1o"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_5mrf2") -}, { -"duration": 1.0, -"texture": ExtResource("2_0n07e") -}, { -"duration": 1.0, -"texture": ExtResource("3_7udtq") -}], -"loop": true, -"name": &"bottoms", -"speed": 1.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": ExtResource("7_iagv2") -}, { -"duration": 1.0, -"texture": ExtResource("8_uraqp") -}, { -"duration": 1.0, -"texture": ExtResource("9_osdr5") -}, { -"duration": 1.0, -"texture": ExtResource("10_uqjix") -}, { -"duration": 1.0, -"texture": ExtResource("11_ssvy5") -}, { -"duration": 1.0, -"texture": ExtResource("12_3wtcm") -}, { -"duration": 1.0, -"texture": ExtResource("13_wlerh") -}, { -"duration": 1.0, -"texture": ExtResource("14_w0d1o") -}], -"loop": true, -"name": &"fullbody", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": ExtResource("7_b8d0l") -}, { -"duration": 1.0, -"texture": ExtResource("10_81cd5") -}, { -"duration": 1.0, -"texture": ExtResource("12_i81ab") -}], -"loop": true, -"name": &"tops", -"speed": 1.0 -}] diff --git a/scenes/object.tscn b/scenes/object.tscn new file mode 100644 index 0000000..ff1a068 --- /dev/null +++ b/scenes/object.tscn @@ -0,0 +1,26 @@ +[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"] diff --git a/scenes/platform.tscn b/scenes/platform.tscn new file mode 100644 index 0000000..e03becf --- /dev/null +++ b/scenes/platform.tscn @@ -0,0 +1,20 @@ +[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 diff --git a/scenes/wardrobe.tscn b/scenes/wardrobe.tscn new file mode 100644 index 0000000..8f718ef --- /dev/null +++ b/scenes/wardrobe.tscn @@ -0,0 +1,51 @@ +[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") diff --git a/screenshot.gif b/screenshot.gif new file mode 100644 index 0000000..ef6345c Binary files /dev/null and b/screenshot.gif differ diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index af34b01..0000000 Binary files a/screenshot.png and /dev/null differ diff --git a/screenshots/main_ui.png b/screenshots/main_ui.png new file mode 100644 index 0000000..02461f8 Binary files /dev/null and b/screenshots/main_ui.png differ diff --git a/sprites/clothes/logo.png.import b/screenshots/main_ui.png.import similarity index 69% rename from sprites/clothes/logo.png.import rename to screenshots/main_ui.png.import index 554e477..76d3459 100644 --- a/sprites/clothes/logo.png.import +++ b/screenshots/main_ui.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ch1y0g1plqys6" -path="res://.godot/imported/logo.png-68ff395daf2515f85e13ba18ce4a426d.ctex" +uid="uid://dycgk1pvyl7fu" +path="res://.godot/imported/main_ui.png-ac6532fbb861d9876368e8a8c16e4467.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://sprites/clothes/logo.png" -dest_files=["res://.godot/imported/logo.png-68ff395daf2515f85e13ba18ce4a426d.ctex"] +source_file="res://screenshots/main_ui.png" +dest_files=["res://.godot/imported/main_ui.png-ac6532fbb861d9876368e8a8c16e4467.ctex"] [params] diff --git a/scripts/character.gd b/scripts/character.gd index f792632..5c590a2 100644 --- a/scripts/character.gd +++ b/scripts/character.gd @@ -1,4 +1,3 @@ -@tool extends Node2D @onready var _eyes = $Eyes diff --git a/scripts/clothing.gd b/scripts/clothing.gd new file mode 100644 index 0000000..2bfe0df --- /dev/null +++ b/scripts/clothing.gd @@ -0,0 +1,37 @@ +# 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 diff --git a/scripts/config.gd b/scripts/config.gd deleted file mode 100644 index 460c050..0000000 --- a/scripts/config.gd +++ /dev/null @@ -1,33 +0,0 @@ -extends Node - -func debug_config(): - # If the game is in - if OS.is_debug_build(): - return "res://config.cfg" - else: - return "user://config.cfg" - -func set_config(config_file = "user://config.cfg"): - # Create new ConfigFile object. - var config = ConfigFile.new() - - # Store some values. - config.set_value("window", "height", 1024) - config.set_value("window", "width", 768) - - # Save it to a file (overwrite if already exists) - if !FileAccess.file_exists(config_file): - config.save(config_file) - -func get_config(section, value, config_file = "user://config.cfg"): - var config = ConfigFile.new() - - # Load data from a file. - var err = config.load(config_file) - - # If the file didn't load, ignore it. - if err != OK: - return - - for cfg in config.get_sections(): - return config.get_value(section, value) diff --git a/scripts/game.gd b/scripts/game.gd deleted file mode 100644 index 2b41643..0000000 --- a/scripts/game.gd +++ /dev/null @@ -1,47 +0,0 @@ -extends Node - - -@onready var tops = $Tops -@onready var bottoms = $Bottoms - - -func _ready(): - var config_file = Config.debug_config() - - if !FileAccess.file_exists(config_file): - Config.set_config() - - if FileAccess.file_exists(config_file): - var window_height = Config.get_config("window", "height", config_file) - var window_width = Config.get_config("window", "width", config_file) - print_debug(window_height) - print_debug(window_width) - - if window_height && window_width != null: - DisplayServer.window_set_size(Vector2i(window_height, window_width)) - -func _on_tops_fwd_btn_pressed(): - var current_frame = tops.frame - tops.frame = current_frame + 1; - -func _on_tops_bck_btn_pressed(): - var current_frame = tops.frame - tops.frame = current_frame + -1; - - -func _on_bottoms_bck_btn_pressed(): - var current_frame = bottoms.frame - bottoms.frame = current_frame + -1; - - -func _on_bottoms_fwd_btn_pressed(): - var current_frame = bottoms.frame - bottoms.frame = current_frame + 1; - - -func _on_fullbody_btn_pressed(): - pass # Replace with function body. - - -func _on_separate_btn_pressed(): - pass # Replace with function body. diff --git a/scripts/global.gd b/scripts/global.gd new file mode 100644 index 0000000..22d4120 --- /dev/null +++ b/scripts/global.gd @@ -0,0 +1,5 @@ +# This project is licensed under the GPL-3.0 license. +# See the LICENSE file in the project root for more information. +extends Node + +var is_dragging = false diff --git a/scripts/gui.gd b/scripts/gui.gd new file mode 100644 index 0000000..20440b7 --- /dev/null +++ b/scripts/gui.gd @@ -0,0 +1,3 @@ +# This project is licensed under the GPL-3.0 license. +# See the LICENSE file in the project root for more information. +extends Control diff --git a/scripts/object.gd b/scripts/object.gd new file mode 100644 index 0000000..7183fef --- /dev/null +++ b/scripts/object.gd @@ -0,0 +1,61 @@ +# 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) diff --git a/scripts/platform.gd b/scripts/platform.gd new file mode 100644 index 0000000..414ae85 --- /dev/null +++ b/scripts/platform.gd @@ -0,0 +1,12 @@ +# 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 diff --git a/sprites/character/zack.png b/sprites/character/zack.png deleted file mode 100644 index fe2a685..0000000 Binary files a/sprites/character/zack.png and /dev/null differ diff --git a/sprites/clothes/amtrak_hoodie.png b/sprites/clothes/amtrak_hoodie.png deleted file mode 100644 index d0abf21..0000000 Binary files a/sprites/clothes/amtrak_hoodie.png and /dev/null differ diff --git a/sprites/clothes/amtrak_hoodie.png.import b/sprites/clothes/amtrak_hoodie.png.import deleted file mode 100644 index 723562f..0000000 --- a/sprites/clothes/amtrak_hoodie.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://covg37pdusbuy" -path="res://.godot/imported/amtrak_hoodie.png-915303b36a13a3f81b56a259a96dfc60.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/amtrak_hoodie.png" -dest_files=["res://.godot/imported/amtrak_hoodie.png-915303b36a13a3f81b56a259a96dfc60.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/atomic_shirt.png b/sprites/clothes/atomic_shirt.png deleted file mode 100644 index 2b03376..0000000 Binary files a/sprites/clothes/atomic_shirt.png and /dev/null differ diff --git a/sprites/clothes/atomic_shirt.png.import b/sprites/clothes/atomic_shirt.png.import deleted file mode 100644 index 1922505..0000000 --- a/sprites/clothes/atomic_shirt.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dbf2fv1mxdygt" -path="res://.godot/imported/atomic_shirt.png-e1562af2eed6677399909eaf790f9e4c.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/atomic_shirt.png" -dest_files=["res://.godot/imported/atomic_shirt.png-e1562af2eed6677399909eaf790f9e4c.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/beat_up_jeans.svg b/sprites/clothes/beat_up_jeans.svg index 3701b17..65773fa 100644 --- a/sprites/clothes/beat_up_jeans.svg +++ b/sprites/clothes/beat_up_jeans.svg @@ -1,81 +1,15 @@ - - - + + + + - - - - - - - + + + + + + + - + diff --git a/sprites/clothes/beatup_jeans.png b/sprites/clothes/beatup_jeans.png deleted file mode 100644 index 7d33865..0000000 Binary files a/sprites/clothes/beatup_jeans.png and /dev/null differ diff --git a/sprites/clothes/beatup_jeans.png.import b/sprites/clothes/beatup_jeans.png.import deleted file mode 100644 index f6e6bcf..0000000 --- a/sprites/clothes/beatup_jeans.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b3xtl8c73nw30" -path="res://.godot/imported/beatup_jeans.png-fba8a80ca3f3d052ec042c34803cc9e7.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/beatup_jeans.png" -dest_files=["res://.godot/imported/beatup_jeans.png-fba8a80ca3f3d052ec042c34803cc9e7.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/blue-ruffle-logo.afdesign b/sprites/clothes/blue-ruffle-logo.afdesign deleted file mode 100644 index dad9a94..0000000 Binary files a/sprites/clothes/blue-ruffle-logo.afdesign and /dev/null differ diff --git a/sprites/clothes/blue_camo_jeans.svg b/sprites/clothes/blue_camo_jeans.svg index 0b97aa6..5abd880 100644 --- a/sprites/clothes/blue_camo_jeans.svg +++ b/sprites/clothes/blue_camo_jeans.svg @@ -1,152 +1,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + diff --git a/sprites/clothes/blue_skirt.svg b/sprites/clothes/blue_skirt.svg index 5329680..4ccf992 100644 --- a/sprites/clothes/blue_skirt.svg +++ b/sprites/clothes/blue_skirt.svg @@ -1,75 +1,13 @@ - - - - - - - - - + + + + + + + + + + - + diff --git a/sprites/ui/cursor.png b/sprites/clothes/cursor.png similarity index 100% rename from sprites/ui/cursor.png rename to sprites/clothes/cursor.png diff --git a/sprites/ui/cursor.png.import b/sprites/clothes/cursor.png.import similarity index 72% rename from sprites/ui/cursor.png.import rename to sprites/clothes/cursor.png.import index b2d619e..e11583b 100644 --- a/sprites/ui/cursor.png.import +++ b/sprites/clothes/cursor.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://b4g0qprd6i545" -path="res://.godot/imported/cursor.png-8f7f1d226048e0d8db54ed4c75641444.ctex" +path="res://.godot/imported/cursor.png-510ed8f4707337aeaa4855fa575b5224.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://sprites/ui/cursor.png" -dest_files=["res://.godot/imported/cursor.png-8f7f1d226048e0d8db54ed4c75641444.ctex"] +source_file="res://sprites/clothes/cursor.png" +dest_files=["res://.godot/imported/cursor.png-510ed8f4707337aeaa4855fa575b5224.ctex"] [params] diff --git a/sprites/clothes/dj_shorts.svg b/sprites/clothes/dj_shorts.svg index bdae6ce..2ae865e 100644 --- a/sprites/clothes/dj_shorts.svg +++ b/sprites/clothes/dj_shorts.svg @@ -1,103 +1,20 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/sprites/clothes/formal_skirt.svg b/sprites/clothes/formal_skirt.svg index a50f1b7..9efb523 100644 --- a/sprites/clothes/formal_skirt.svg +++ b/sprites/clothes/formal_skirt.svg @@ -1,51 +1,93 @@ - - - - + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="formal_skirt.svg" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + id="svg2007" + version="1.1" + viewBox="0 0 29.356469 33.543056" + height="33.543056mm" + width="29.356468mm"> + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/sprites/clothes/fullbody/canonrhode.png b/sprites/clothes/fullbody/canonrhode.png deleted file mode 100644 index f314ed0..0000000 Binary files a/sprites/clothes/fullbody/canonrhode.png and /dev/null differ diff --git a/sprites/clothes/fullbody/canonrhode.png.import b/sprites/clothes/fullbody/canonrhode.png.import deleted file mode 100644 index 635fb98..0000000 --- a/sprites/clothes/fullbody/canonrhode.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://5heuxqo78jns" -path="res://.godot/imported/canonrhode.png-34049a7d8e1bd7f2f1e79a1bb0a53e6e.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/fullbody/canonrhode.png" -dest_files=["res://.godot/imported/canonrhode.png-34049a7d8e1bd7f2f1e79a1bb0a53e6e.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/fullbody/coat.png b/sprites/clothes/fullbody/coat.png deleted file mode 100644 index f52a99a..0000000 Binary files a/sprites/clothes/fullbody/coat.png and /dev/null differ diff --git a/sprites/clothes/fullbody/edsoutfit.png b/sprites/clothes/fullbody/edsoutfit.png deleted file mode 100644 index 8f5848f..0000000 Binary files a/sprites/clothes/fullbody/edsoutfit.png and /dev/null differ diff --git a/sprites/clothes/fullbody/edsoutfit.png.import b/sprites/clothes/fullbody/edsoutfit.png.import deleted file mode 100644 index 437c7c8..0000000 --- a/sprites/clothes/fullbody/edsoutfit.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://6y443cg1s6up" -path="res://.godot/imported/edsoutfit.png-367388d9f85cbf0ed71362f37d74fa4f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/fullbody/edsoutfit.png" -dest_files=["res://.godot/imported/edsoutfit.png-367388d9f85cbf0ed71362f37d74fa4f.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/fullbody/formal.png b/sprites/clothes/fullbody/formal.png deleted file mode 100644 index 1c62a57..0000000 Binary files a/sprites/clothes/fullbody/formal.png and /dev/null differ diff --git a/sprites/clothes/fullbody/formal.png.import b/sprites/clothes/fullbody/formal.png.import deleted file mode 100644 index c63e180..0000000 --- a/sprites/clothes/fullbody/formal.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://crgedi1ppq2ow" -path="res://.godot/imported/formal.png-ad806d237a0a6cac18782e49981b6fa2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/fullbody/formal.png" -dest_files=["res://.godot/imported/formal.png-ad806d237a0a6cac18782e49981b6fa2.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/fullbody/mario.png b/sprites/clothes/fullbody/mario.png deleted file mode 100644 index c8db014..0000000 Binary files a/sprites/clothes/fullbody/mario.png and /dev/null differ diff --git a/sprites/clothes/fullbody/mario.png.import b/sprites/clothes/fullbody/mario.png.import deleted file mode 100644 index 97e1f6f..0000000 --- a/sprites/clothes/fullbody/mario.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b07kumnwr7c0w" -path="res://.godot/imported/mario.png-6e51bf75093eebd6b666b8535927575c.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/fullbody/mario.png" -dest_files=["res://.godot/imported/mario.png-6e51bf75093eebd6b666b8535927575c.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/fullbody/schoolgirl.png b/sprites/clothes/fullbody/schoolgirl.png deleted file mode 100644 index a6ecf70..0000000 Binary files a/sprites/clothes/fullbody/schoolgirl.png and /dev/null differ diff --git a/sprites/clothes/fullbody/schoolgirl.png.import b/sprites/clothes/fullbody/schoolgirl.png.import deleted file mode 100644 index d61622a..0000000 --- a/sprites/clothes/fullbody/schoolgirl.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c8xa7sal3omnm" -path="res://.godot/imported/schoolgirl.png-32f14199b814658cd142fd79d92c28df.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/fullbody/schoolgirl.png" -dest_files=["res://.godot/imported/schoolgirl.png-32f14199b814658cd142fd79d92c28df.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/fullbody/snowboarding.png b/sprites/clothes/fullbody/snowboarding.png deleted file mode 100644 index 968fab9..0000000 Binary files a/sprites/clothes/fullbody/snowboarding.png and /dev/null differ diff --git a/sprites/clothes/fullbody/snowboarding.png.import b/sprites/clothes/fullbody/snowboarding.png.import deleted file mode 100644 index 3758596..0000000 --- a/sprites/clothes/fullbody/snowboarding.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://lxsoletgafdk" -path="res://.godot/imported/snowboarding.png-f5b50f794211ea753cb7782eafcbab3b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/fullbody/snowboarding.png" -dest_files=["res://.godot/imported/snowboarding.png-f5b50f794211ea753cb7782eafcbab3b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/fullbody/wendy.png b/sprites/clothes/fullbody/wendy.png deleted file mode 100644 index 58afde7..0000000 Binary files a/sprites/clothes/fullbody/wendy.png and /dev/null differ diff --git a/sprites/clothes/fullbody/wendy.png.import b/sprites/clothes/fullbody/wendy.png.import deleted file mode 100644 index 18d2b2a..0000000 --- a/sprites/clothes/fullbody/wendy.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cgxm7h4ukqpyh" -path="res://.godot/imported/wendy.png-e8ad05b117de48ee6b0cdfc02a6e87d2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/fullbody/wendy.png" -dest_files=["res://.godot/imported/wendy.png-e8ad05b117de48ee6b0cdfc02a6e87d2.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/fullsnack_shirt.svg b/sprites/clothes/fullsnack_shirt.svg index ee8c400..0d66500 100644 --- a/sprites/clothes/fullsnack_shirt.svg +++ b/sprites/clothes/fullsnack_shirt.svg @@ -1,35 +1,261 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sprites/world/icrazy_frame.svg b/sprites/clothes/icrazy_frame.svg similarity index 100% rename from sprites/world/icrazy_frame.svg rename to sprites/clothes/icrazy_frame.svg diff --git a/sprites/world/icrazy_frame.svg.import b/sprites/clothes/icrazy_frame.svg.import similarity index 74% rename from sprites/world/icrazy_frame.svg.import rename to sprites/clothes/icrazy_frame.svg.import index f0e5726..9c6bcf9 100644 --- a/sprites/world/icrazy_frame.svg.import +++ b/sprites/clothes/icrazy_frame.svg.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bi7ayrxnn7hex" -path="res://.godot/imported/icrazy_frame.svg-96baf65adc7b6794f97c6c0d94fcce08.ctex" +path="res://.godot/imported/icrazy_frame.svg-032c353b0b85ae71d6c5843b8929a60c.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://sprites/world/icrazy_frame.svg" -dest_files=["res://.godot/imported/icrazy_frame.svg-96baf65adc7b6794f97c6c0d94fcce08.ctex"] +source_file="res://sprites/clothes/icrazy_frame.svg" +dest_files=["res://.godot/imported/icrazy_frame.svg-032c353b0b85ae71d6c5843b8929a60c.ctex"] [params] diff --git a/sprites/clothes/jeans.png b/sprites/clothes/jeans.png deleted file mode 100644 index 1e27e57..0000000 Binary files a/sprites/clothes/jeans.png and /dev/null differ diff --git a/sprites/clothes/jeans.png.import b/sprites/clothes/jeans.png.import deleted file mode 100644 index ecc93b9..0000000 --- a/sprites/clothes/jeans.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bl8w5mjjo4i73" -path="res://.godot/imported/jeans.png-cb872dec1c87d219bb56d373215c361d.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/jeans.png" -dest_files=["res://.godot/imported/jeans.png-cb872dec1c87d219bb56d373215c361d.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/jeans.svg b/sprites/clothes/jeans.svg index daf5f8d..6071567 100644 --- a/sprites/clothes/jeans.svg +++ b/sprites/clothes/jeans.svg @@ -1,91 +1,19 @@ - - - - - + + + + + + - - - - - - - + + + + + + + - + diff --git a/sprites/clothes/logo.png b/sprites/clothes/logo.png deleted file mode 100644 index 1855097..0000000 Binary files a/sprites/clothes/logo.png and /dev/null differ diff --git a/sprites/clothes/pants_icon.svg b/sprites/clothes/pants_icon.svg new file mode 100644 index 0000000..eb8ad9a --- /dev/null +++ b/sprites/clothes/pants_icon.svg @@ -0,0 +1,19 @@ + + + + + + + diff --git a/screenshot.png.import b/sprites/clothes/pants_icon.svg.import similarity index 60% rename from screenshot.png.import rename to sprites/clothes/pants_icon.svg.import index 1174e39..9c78434 100644 --- a/screenshot.png.import +++ b/sprites/clothes/pants_icon.svg.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjio4exj7ic6b" -path="res://.godot/imported/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.ctex" +uid="uid://bn2le7r61mcmq" +path="res://.godot/imported/pants_icon.svg-1b70a1b4db0c8229d68cbbafffd7bf3c.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://screenshot.png" -dest_files=["res://.godot/imported/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.ctex"] +source_file="res://sprites/clothes/pants_icon.svg" +dest_files=["res://.godot/imported/pants_icon.svg-1b70a1b4db0c8229d68cbbafffd7bf3c.ctex"] [params] @@ -32,3 +32,6 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/sprites/clothes/retro_shirt.svg b/sprites/clothes/retro_shirt.svg index a2f80b3..4dcff76 100644 --- a/sprites/clothes/retro_shirt.svg +++ b/sprites/clothes/retro_shirt.svg @@ -1,17 +1,192 @@ - - - - - - - - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sprites/clothes/scale.png b/sprites/clothes/scale.png index 7a0a9b4..17ab738 100644 Binary files a/sprites/clothes/scale.png and b/sprites/clothes/scale.png differ diff --git a/sprites/clothes/shirt_icon.svg b/sprites/clothes/shirt_icon.svg new file mode 100644 index 0000000..2f163a1 --- /dev/null +++ b/sprites/clothes/shirt_icon.svg @@ -0,0 +1,44 @@ + + + + + + + diff --git a/sprites/character/zack.png.import b/sprites/clothes/shirt_icon.svg.import similarity index 60% rename from sprites/character/zack.png.import rename to sprites/clothes/shirt_icon.svg.import index 42485d3..0521887 100644 --- a/sprites/character/zack.png.import +++ b/sprites/clothes/shirt_icon.svg.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://3rmb0kj376t1" -path="res://.godot/imported/zack.png-f8da36885e697645dad9d11e96d24cd4.ctex" +uid="uid://sl7vgiqmblpd" +path="res://.godot/imported/shirt_icon.svg-96421effc10bfb14afa97232b2ab5d13.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://sprites/character/zack.png" -dest_files=["res://.godot/imported/zack.png-f8da36885e697645dad9d11e96d24cd4.ctex"] +source_file="res://sprites/clothes/shirt_icon.svg" +dest_files=["res://.godot/imported/shirt_icon.svg-96421effc10bfb14afa97232b2ab5d13.ctex"] [params] @@ -32,3 +32,6 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/sprites/clothes/sweat_pants.png b/sprites/clothes/sweat_pants.png deleted file mode 100644 index 1c023e5..0000000 Binary files a/sprites/clothes/sweat_pants.png and /dev/null differ diff --git a/sprites/clothes/sweat_pants.png.import b/sprites/clothes/sweat_pants.png.import deleted file mode 100644 index 8e5edb3..0000000 --- a/sprites/clothes/sweat_pants.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://wfsffpk4h8p" -path="res://.godot/imported/sweat_pants.png-d8ccfd16bd13d1a37fa594caf5da185b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/clothes/sweat_pants.png" -dest_files=["res://.godot/imported/sweat_pants.png-d8ccfd16bd13d1a37fa594caf5da185b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/clothes/sweat_pants.svg b/sprites/clothes/sweat_pants.svg index 7905528..1657cda 100644 --- a/sprites/clothes/sweat_pants.svg +++ b/sprites/clothes/sweat_pants.svg @@ -1,56 +1,9 @@ - - - - + + + + + - + diff --git a/sprites/clothes/train_hoodie.svg b/sprites/clothes/train_hoodie.svg index 9c47441..0bc7b9c 100644 --- a/sprites/clothes/train_hoodie.svg +++ b/sprites/clothes/train_hoodie.svg @@ -1,25 +1,218 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sprites/clothes/whatsnew_shirt.svg b/sprites/clothes/whatsnew_shirt.svg index 788610a..2b47130 100644 --- a/sprites/clothes/whatsnew_shirt.svg +++ b/sprites/clothes/whatsnew_shirt.svg @@ -1,14 +1,158 @@ - - - - - - - - - - - + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sprites/logo.png b/sprites/logo.png deleted file mode 100644 index 1855097..0000000 Binary files a/sprites/logo.png and /dev/null differ diff --git a/sprites/logo.png.import b/sprites/logo.png.import deleted file mode 100644 index f422dc9..0000000 --- a/sprites/logo.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[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 diff --git a/sprites/ui/fullbodyBtn.png b/sprites/ui/fullbodyBtn.png deleted file mode 100644 index 1474909..0000000 Binary files a/sprites/ui/fullbodyBtn.png and /dev/null differ diff --git a/sprites/ui/fullbodyBtn.png.import b/sprites/ui/fullbodyBtn.png.import deleted file mode 100644 index 05fd609..0000000 --- a/sprites/ui/fullbodyBtn.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cl0wwlm6yw0ug" -path="res://.godot/imported/fullbodyBtn.png-f506c185022437b56c8bcc7e37108083.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/ui/fullbodyBtn.png" -dest_files=["res://.godot/imported/fullbodyBtn.png-f506c185022437b56c8bcc7e37108083.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/ui/greenBtn.png b/sprites/ui/greenBtn.png deleted file mode 100644 index 036fd0d..0000000 Binary files a/sprites/ui/greenBtn.png and /dev/null differ diff --git a/sprites/ui/greenBtn.png.import b/sprites/ui/greenBtn.png.import deleted file mode 100644 index 2205cb0..0000000 --- a/sprites/ui/greenBtn.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[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 diff --git a/sprites/ui/redBtn.png b/sprites/ui/redBtn.png deleted file mode 100644 index df6499b..0000000 Binary files a/sprites/ui/redBtn.png and /dev/null differ diff --git a/sprites/ui/redBtn.png.import b/sprites/ui/redBtn.png.import deleted file mode 100644 index ebc9e50..0000000 --- a/sprites/ui/redBtn.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[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 diff --git a/sprites/ui/seperateBtn.png b/sprites/ui/seperateBtn.png deleted file mode 100644 index 9de6a40..0000000 Binary files a/sprites/ui/seperateBtn.png and /dev/null differ diff --git a/sprites/ui/seperateBtn.png.import b/sprites/ui/seperateBtn.png.import deleted file mode 100644 index fe04822..0000000 --- a/sprites/ui/seperateBtn.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://nc0wkek55yhu" -path="res://.godot/imported/seperateBtn.png-9c26f70de7cb496b00568eacdb9e191f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://sprites/ui/seperateBtn.png" -dest_files=["res://.godot/imported/seperateBtn.png-9c26f70de7cb496b00568eacdb9e191f.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/sprites/world/boxersOfAmericaFrame.png b/sprites/world/boxersOfAmericaFrame.png deleted file mode 100644 index 3e6ceb3..0000000 Binary files a/sprites/world/boxersOfAmericaFrame.png and /dev/null differ diff --git a/sprites/world/boxersOfAmericaFrame.png.import b/sprites/world/boxersOfAmericaFrame.png.import deleted file mode 100644 index b1f5067..0000000 --- a/sprites/world/boxersOfAmericaFrame.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[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