diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..dfe0770
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Auto detect text files and perform LF normalization
+* text=auto
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..134c73a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,398 @@
+## 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
+*.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_*
+
+# 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
+*.ncb
+*.aps
+
+# 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
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+*.code-workspace
+
+# Local History for Visual Studio Code
+.history/
+
+# Windows Installer files from build outputs
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# JetBrains Rider
+*.sln.iml
+
+# Dependencies which shouldn't be included, as they're part of FEZ
+Dependencies/*
+!Dependencies/*.md
\ No newline at end of file
diff --git a/Animations/airpanic.xnb b/Animations/airpanic.xnb
new file mode 100644
index 0000000..1d4b933
Binary files /dev/null and b/Animations/airpanic.xnb differ
diff --git a/Animations/airpanic_nohat.xnb b/Animations/airpanic_nohat.xnb
new file mode 100644
index 0000000..78d6951
Binary files /dev/null and b/Animations/airpanic_nohat.xnb differ
diff --git a/Animations/backtocornergrab.xnb b/Animations/backtocornergrab.xnb
new file mode 100644
index 0000000..f18d5f3
Binary files /dev/null and b/Animations/backtocornergrab.xnb differ
diff --git a/Animations/backtocornergrab_nohat.xnb b/Animations/backtocornergrab_nohat.xnb
new file mode 100644
index 0000000..dc32013
Binary files /dev/null and b/Animations/backtocornergrab_nohat.xnb differ
diff --git a/Animations/carryenter.xnb b/Animations/carryenter.xnb
new file mode 100644
index 0000000..69e8c9d
Binary files /dev/null and b/Animations/carryenter.xnb differ
diff --git a/Animations/carryenter_nohat.xnb b/Animations/carryenter_nohat.xnb
new file mode 100644
index 0000000..d49ef79
Binary files /dev/null and b/Animations/carryenter_nohat.xnb differ
diff --git a/Animations/carryexit.xnb b/Animations/carryexit.xnb
new file mode 100644
index 0000000..dc4d023
Binary files /dev/null and b/Animations/carryexit.xnb differ
diff --git a/Animations/carryexit_nohat.xnb b/Animations/carryexit_nohat.xnb
new file mode 100644
index 0000000..bb10b68
Binary files /dev/null and b/Animations/carryexit_nohat.xnb differ
diff --git a/Animations/carryheavyenter.xnb b/Animations/carryheavyenter.xnb
new file mode 100644
index 0000000..c74df9c
Binary files /dev/null and b/Animations/carryheavyenter.xnb differ
diff --git a/Animations/carryheavyenter_nohat.xnb b/Animations/carryheavyenter_nohat.xnb
new file mode 100644
index 0000000..8fe885d
Binary files /dev/null and b/Animations/carryheavyenter_nohat.xnb differ
diff --git a/Animations/carryheavyexit.xnb b/Animations/carryheavyexit.xnb
new file mode 100644
index 0000000..eddc9d5
Binary files /dev/null and b/Animations/carryheavyexit.xnb differ
diff --git a/Animations/carryheavyexit_nohat.xnb b/Animations/carryheavyexit_nohat.xnb
new file mode 100644
index 0000000..16e158f
Binary files /dev/null and b/Animations/carryheavyexit_nohat.xnb differ
diff --git a/Animations/carryheavyjump.xnb b/Animations/carryheavyjump.xnb
new file mode 100644
index 0000000..4d0233a
Binary files /dev/null and b/Animations/carryheavyjump.xnb differ
diff --git a/Animations/carryheavyjump_nohat.xnb b/Animations/carryheavyjump_nohat.xnb
new file mode 100644
index 0000000..8c3b710
Binary files /dev/null and b/Animations/carryheavyjump_nohat.xnb differ
diff --git a/Animations/carryheavystand.xnb b/Animations/carryheavystand.xnb
new file mode 100644
index 0000000..5b6c16d
Binary files /dev/null and b/Animations/carryheavystand.xnb differ
diff --git a/Animations/carryheavystand_nohat.xnb b/Animations/carryheavystand_nohat.xnb
new file mode 100644
index 0000000..7b4785e
Binary files /dev/null and b/Animations/carryheavystand_nohat.xnb differ
diff --git a/Animations/carryheavywalk.xnb b/Animations/carryheavywalk.xnb
new file mode 100644
index 0000000..7795e2f
Binary files /dev/null and b/Animations/carryheavywalk.xnb differ
diff --git a/Animations/carryheavywalk_nohat.xnb b/Animations/carryheavywalk_nohat.xnb
new file mode 100644
index 0000000..55231d5
Binary files /dev/null and b/Animations/carryheavywalk_nohat.xnb differ
diff --git a/Animations/carryjump.xnb b/Animations/carryjump.xnb
new file mode 100644
index 0000000..ef7f4de
Binary files /dev/null and b/Animations/carryjump.xnb differ
diff --git a/Animations/carryjump_nohat.xnb b/Animations/carryjump_nohat.xnb
new file mode 100644
index 0000000..806e0a8
Binary files /dev/null and b/Animations/carryjump_nohat.xnb differ
diff --git a/Animations/carrystand.xnb b/Animations/carrystand.xnb
new file mode 100644
index 0000000..1aab4b5
Binary files /dev/null and b/Animations/carrystand.xnb differ
diff --git a/Animations/carrystand_nohat.xnb b/Animations/carrystand_nohat.xnb
new file mode 100644
index 0000000..25e5a7d
Binary files /dev/null and b/Animations/carrystand_nohat.xnb differ
diff --git a/Animations/carrywalk.xnb b/Animations/carrywalk.xnb
new file mode 100644
index 0000000..f00a6c2
Binary files /dev/null and b/Animations/carrywalk.xnb differ
diff --git a/Animations/carrywalk_nohat.xnb b/Animations/carrywalk_nohat.xnb
new file mode 100644
index 0000000..257eb0f
Binary files /dev/null and b/Animations/carrywalk_nohat.xnb differ
diff --git a/Animations/climbbacksideways.xnb b/Animations/climbbacksideways.xnb
new file mode 100644
index 0000000..39b8e7a
Binary files /dev/null and b/Animations/climbbacksideways.xnb differ
diff --git a/Animations/climbbacksideways_nohat.xnb b/Animations/climbbacksideways_nohat.xnb
new file mode 100644
index 0000000..146f161
Binary files /dev/null and b/Animations/climbbacksideways_nohat.xnb differ
diff --git a/Animations/climbfront.xnb b/Animations/climbfront.xnb
new file mode 100644
index 0000000..7afceba
Binary files /dev/null and b/Animations/climbfront.xnb differ
diff --git a/Animations/climbfront_nohat.xnb b/Animations/climbfront_nohat.xnb
new file mode 100644
index 0000000..a93cdde
Binary files /dev/null and b/Animations/climbfront_nohat.xnb differ
diff --git a/Animations/climbfrontsideways.xnb b/Animations/climbfrontsideways.xnb
new file mode 100644
index 0000000..5b9dcca
Binary files /dev/null and b/Animations/climbfrontsideways.xnb differ
diff --git a/Animations/climbfrontsideways_nohat.xnb b/Animations/climbfrontsideways_nohat.xnb
new file mode 100644
index 0000000..cb16eb9
Binary files /dev/null and b/Animations/climbfrontsideways_nohat.xnb differ
diff --git a/Animations/climboverladder.xnb b/Animations/climboverladder.xnb
new file mode 100644
index 0000000..e52e163
Binary files /dev/null and b/Animations/climboverladder.xnb differ
diff --git a/Animations/climboverladder_nohat.xnb b/Animations/climboverladder_nohat.xnb
new file mode 100644
index 0000000..f7f7289
Binary files /dev/null and b/Animations/climboverladder_nohat.xnb differ
diff --git a/Animations/climbrear.xnb b/Animations/climbrear.xnb
new file mode 100644
index 0000000..1c0c2a0
Binary files /dev/null and b/Animations/climbrear.xnb differ
diff --git a/Animations/climbrear_nohat.xnb b/Animations/climbrear_nohat.xnb
new file mode 100644
index 0000000..925b020
Binary files /dev/null and b/Animations/climbrear_nohat.xnb differ
diff --git a/Animations/climbside.xnb b/Animations/climbside.xnb
new file mode 100644
index 0000000..1eddb06
Binary files /dev/null and b/Animations/climbside.xnb differ
diff --git a/Animations/climbside_nohat.xnb b/Animations/climbside_nohat.xnb
new file mode 100644
index 0000000..70cb8b4
Binary files /dev/null and b/Animations/climbside_nohat.xnb differ
diff --git a/Animations/cornerledgegrab.xnb b/Animations/cornerledgegrab.xnb
new file mode 100644
index 0000000..c9284c6
Binary files /dev/null and b/Animations/cornerledgegrab.xnb differ
diff --git a/Animations/cornerledgegrab_nohat.xnb b/Animations/cornerledgegrab_nohat.xnb
new file mode 100644
index 0000000..672be58
Binary files /dev/null and b/Animations/cornerledgegrab_nohat.xnb differ
diff --git a/Animations/cornerledgelower.xnb b/Animations/cornerledgelower.xnb
new file mode 100644
index 0000000..dcfc609
Binary files /dev/null and b/Animations/cornerledgelower.xnb differ
diff --git a/Animations/cornerledgelower_nohat.xnb b/Animations/cornerledgelower_nohat.xnb
new file mode 100644
index 0000000..01563d6
Binary files /dev/null and b/Animations/cornerledgelower_nohat.xnb differ
diff --git a/Animations/cornerledgepullup.xnb b/Animations/cornerledgepullup.xnb
new file mode 100644
index 0000000..4cb9a22
Binary files /dev/null and b/Animations/cornerledgepullup.xnb differ
diff --git a/Animations/cornerledgepullup_nohat.xnb b/Animations/cornerledgepullup_nohat.xnb
new file mode 100644
index 0000000..c266445
Binary files /dev/null and b/Animations/cornerledgepullup_nohat.xnb differ
diff --git a/Animations/cornertobackgrab.xnb b/Animations/cornertobackgrab.xnb
new file mode 100644
index 0000000..b61292e
Binary files /dev/null and b/Animations/cornertobackgrab.xnb differ
diff --git a/Animations/cornertobackgrab_nohat.xnb b/Animations/cornertobackgrab_nohat.xnb
new file mode 100644
index 0000000..3e66d6d
Binary files /dev/null and b/Animations/cornertobackgrab_nohat.xnb differ
diff --git a/Animations/crushhorizontal.xnb b/Animations/crushhorizontal.xnb
new file mode 100644
index 0000000..0a534c6
Binary files /dev/null and b/Animations/crushhorizontal.xnb differ
diff --git a/Animations/crushhorizontal_nohat.xnb b/Animations/crushhorizontal_nohat.xnb
new file mode 100644
index 0000000..94f74cc
Binary files /dev/null and b/Animations/crushhorizontal_nohat.xnb differ
diff --git a/Animations/crushvertical.xnb b/Animations/crushvertical.xnb
new file mode 100644
index 0000000..a07fa5f
Binary files /dev/null and b/Animations/crushvertical.xnb differ
diff --git a/Animations/crushvertical_nohat.xnb b/Animations/crushvertical_nohat.xnb
new file mode 100644
index 0000000..6cf9d73
Binary files /dev/null and b/Animations/crushvertical_nohat.xnb differ
diff --git a/Animations/die.xnb b/Animations/die.xnb
new file mode 100644
index 0000000..14dec65
Binary files /dev/null and b/Animations/die.xnb differ
diff --git a/Animations/die_nohat.xnb b/Animations/die_nohat.xnb
new file mode 100644
index 0000000..411dba9
Binary files /dev/null and b/Animations/die_nohat.xnb differ
diff --git a/Animations/dropheavytrile.xnb b/Animations/dropheavytrile.xnb
new file mode 100644
index 0000000..614b636
Binary files /dev/null and b/Animations/dropheavytrile.xnb differ
diff --git a/Animations/dropheavytrile_nohat.xnb b/Animations/dropheavytrile_nohat.xnb
new file mode 100644
index 0000000..188c0fc
Binary files /dev/null and b/Animations/dropheavytrile_nohat.xnb differ
diff --git a/Animations/droptrile.xnb b/Animations/droptrile.xnb
new file mode 100644
index 0000000..bbcd506
Binary files /dev/null and b/Animations/droptrile.xnb differ
diff --git a/Animations/droptrile_nohat.xnb b/Animations/droptrile_nohat.xnb
new file mode 100644
index 0000000..92f7cad
Binary files /dev/null and b/Animations/droptrile_nohat.xnb differ
diff --git a/Animations/drums/drumscrash.xnb b/Animations/drums/drumscrash.xnb
new file mode 100644
index 0000000..5e887d0
Binary files /dev/null and b/Animations/drums/drumscrash.xnb differ
diff --git a/Animations/drums/drumshihat.xnb b/Animations/drums/drumshihat.xnb
new file mode 100644
index 0000000..26d81d7
Binary files /dev/null and b/Animations/drums/drumshihat.xnb differ
diff --git a/Animations/drums/drumsidle.xnb b/Animations/drums/drumsidle.xnb
new file mode 100644
index 0000000..9136742
Binary files /dev/null and b/Animations/drums/drumsidle.xnb differ
diff --git a/Animations/drums/drumstom.xnb b/Animations/drums/drumstom.xnb
new file mode 100644
index 0000000..a149643
Binary files /dev/null and b/Animations/drums/drumstom.xnb differ
diff --git a/Animations/drums/drumstom2.xnb b/Animations/drums/drumstom2.xnb
new file mode 100644
index 0000000..480f10e
Binary files /dev/null and b/Animations/drums/drumstom2.xnb differ
diff --git a/Animations/drums/drumstoss.xnb b/Animations/drums/drumstoss.xnb
new file mode 100644
index 0000000..eeb1262
Binary files /dev/null and b/Animations/drums/drumstoss.xnb differ
diff --git a/Animations/drums/drumstwirl.xnb b/Animations/drums/drumstwirl.xnb
new file mode 100644
index 0000000..ca00419
Binary files /dev/null and b/Animations/drums/drumstwirl.xnb differ
diff --git a/Animations/enterdoor.xnb b/Animations/enterdoor.xnb
new file mode 100644
index 0000000..a4af9a0
Binary files /dev/null and b/Animations/enterdoor.xnb differ
diff --git a/Animations/enterdoor_nohat.xnb b/Animations/enterdoor_nohat.xnb
new file mode 100644
index 0000000..9f36aa2
Binary files /dev/null and b/Animations/enterdoor_nohat.xnb differ
diff --git a/Animations/exitdoor.xnb b/Animations/exitdoor.xnb
new file mode 100644
index 0000000..0d30b0d
Binary files /dev/null and b/Animations/exitdoor.xnb differ
diff --git a/Animations/exitdoor_nohat.xnb b/Animations/exitdoor_nohat.xnb
new file mode 100644
index 0000000..48774e7
Binary files /dev/null and b/Animations/exitdoor_nohat.xnb differ
diff --git a/Animations/flail.xnb b/Animations/flail.xnb
new file mode 100644
index 0000000..cd8e24a
Binary files /dev/null and b/Animations/flail.xnb differ
diff --git a/Animations/flail_nohat.xnb b/Animations/flail_nohat.xnb
new file mode 100644
index 0000000..0c30bae
Binary files /dev/null and b/Animations/flail_nohat.xnb differ
diff --git a/Animations/fronttocornergrab.xnb b/Animations/fronttocornergrab.xnb
new file mode 100644
index 0000000..44d49e7
Binary files /dev/null and b/Animations/fronttocornergrab.xnb differ
diff --git a/Animations/fronttocornergrab_nohat.xnb b/Animations/fronttocornergrab_nohat.xnb
new file mode 100644
index 0000000..74e8aad
Binary files /dev/null and b/Animations/fronttocornergrab_nohat.xnb differ
diff --git a/Animations/grab.xnb b/Animations/grab.xnb
new file mode 100644
index 0000000..704eea7
Binary files /dev/null and b/Animations/grab.xnb differ
diff --git a/Animations/grab_nohat.xnb b/Animations/grab_nohat.xnb
new file mode 100644
index 0000000..554d112
Binary files /dev/null and b/Animations/grab_nohat.xnb differ
diff --git a/Animations/grabtombstone.xnb b/Animations/grabtombstone.xnb
new file mode 100644
index 0000000..d916072
Binary files /dev/null and b/Animations/grabtombstone.xnb differ
diff --git a/Animations/grabtombstone_nohat.xnb b/Animations/grabtombstone_nohat.xnb
new file mode 100644
index 0000000..06b22b3
Binary files /dev/null and b/Animations/grabtombstone_nohat.xnb differ
diff --git a/Animations/hitbell.xnb b/Animations/hitbell.xnb
new file mode 100644
index 0000000..6454a3c
Binary files /dev/null and b/Animations/hitbell.xnb differ
diff --git a/Animations/hitbell_nohat.xnb b/Animations/hitbell_nohat.xnb
new file mode 100644
index 0000000..32968f0
Binary files /dev/null and b/Animations/hitbell_nohat.xnb differ
diff --git a/Animations/hurt.xnb b/Animations/hurt.xnb
new file mode 100644
index 0000000..5c4a26a
Binary files /dev/null and b/Animations/hurt.xnb differ
diff --git a/Animations/hurt_nohat.xnb b/Animations/hurt_nohat.xnb
new file mode 100644
index 0000000..fd19a60
Binary files /dev/null and b/Animations/hurt_nohat.xnb differ
diff --git a/Animations/idlelookaround.xnb b/Animations/idlelookaround.xnb
new file mode 100644
index 0000000..bd21292
Binary files /dev/null and b/Animations/idlelookaround.xnb differ
diff --git a/Animations/idlelookaround_nohat.xnb b/Animations/idlelookaround_nohat.xnb
new file mode 100644
index 0000000..c7754b2
Binary files /dev/null and b/Animations/idlelookaround_nohat.xnb differ
diff --git a/Animations/idleplay.xnb b/Animations/idleplay.xnb
new file mode 100644
index 0000000..3a938ca
Binary files /dev/null and b/Animations/idleplay.xnb differ
diff --git a/Animations/idleplay_nohat.xnb b/Animations/idleplay_nohat.xnb
new file mode 100644
index 0000000..a926162
Binary files /dev/null and b/Animations/idleplay_nohat.xnb differ
diff --git a/Animations/idlesleep.xnb b/Animations/idlesleep.xnb
new file mode 100644
index 0000000..fe98b07
Binary files /dev/null and b/Animations/idlesleep.xnb differ
diff --git a/Animations/idlesleep_nohat.xnb b/Animations/idlesleep_nohat.xnb
new file mode 100644
index 0000000..c20f24c
Binary files /dev/null and b/Animations/idlesleep_nohat.xnb differ
diff --git a/Animations/idletobackclimb.xnb b/Animations/idletobackclimb.xnb
new file mode 100644
index 0000000..7a0846a
Binary files /dev/null and b/Animations/idletobackclimb.xnb differ
diff --git a/Animations/idletobackclimb_nohat.xnb b/Animations/idletobackclimb_nohat.xnb
new file mode 100644
index 0000000..8267896
Binary files /dev/null and b/Animations/idletobackclimb_nohat.xnb differ
diff --git a/Animations/idletofrontclimb.xnb b/Animations/idletofrontclimb.xnb
new file mode 100644
index 0000000..db90e82
Binary files /dev/null and b/Animations/idletofrontclimb.xnb differ
diff --git a/Animations/idletofrontclimb_nohat.xnb b/Animations/idletofrontclimb_nohat.xnb
new file mode 100644
index 0000000..016d376
Binary files /dev/null and b/Animations/idletofrontclimb_nohat.xnb differ
diff --git a/Animations/idletosideclimb.xnb b/Animations/idletosideclimb.xnb
new file mode 100644
index 0000000..d976e00
Binary files /dev/null and b/Animations/idletosideclimb.xnb differ
diff --git a/Animations/idletosideclimb_nohat.xnb b/Animations/idletosideclimb_nohat.xnb
new file mode 100644
index 0000000..0469015
Binary files /dev/null and b/Animations/idletosideclimb_nohat.xnb differ
diff --git a/Animations/idlewink.xnb b/Animations/idlewink.xnb
new file mode 100644
index 0000000..0cb7fc0
Binary files /dev/null and b/Animations/idlewink.xnb differ
diff --git a/Animations/idlewink_nohat.xnb b/Animations/idlewink_nohat.xnb
new file mode 100644
index 0000000..dd5b246
Binary files /dev/null and b/Animations/idlewink_nohat.xnb differ
diff --git a/Animations/idleyawn.xnb b/Animations/idleyawn.xnb
new file mode 100644
index 0000000..c662d12
Binary files /dev/null and b/Animations/idleyawn.xnb differ
diff --git a/Animations/idleyawn_nohat.xnb b/Animations/idleyawn_nohat.xnb
new file mode 100644
index 0000000..0c56582
Binary files /dev/null and b/Animations/idleyawn_nohat.xnb differ
diff --git a/Animations/jump.xnb b/Animations/jump.xnb
new file mode 100644
index 0000000..ca31e71
Binary files /dev/null and b/Animations/jump.xnb differ
diff --git a/Animations/jump_nohat.xnb b/Animations/jump_nohat.xnb
new file mode 100644
index 0000000..eb2cd65
Binary files /dev/null and b/Animations/jump_nohat.xnb differ
diff --git a/Animations/jumptobackclimb.xnb b/Animations/jumptobackclimb.xnb
new file mode 100644
index 0000000..3833fd4
Binary files /dev/null and b/Animations/jumptobackclimb.xnb differ
diff --git a/Animations/jumptobackclimb_nohat.xnb b/Animations/jumptobackclimb_nohat.xnb
new file mode 100644
index 0000000..71e5ac1
Binary files /dev/null and b/Animations/jumptobackclimb_nohat.xnb differ
diff --git a/Animations/jumptosideclimb.xnb b/Animations/jumptosideclimb.xnb
new file mode 100644
index 0000000..3f52370
Binary files /dev/null and b/Animations/jumptosideclimb.xnb differ
diff --git a/Animations/jumptosideclimb_nohat.xnb b/Animations/jumptosideclimb_nohat.xnb
new file mode 100644
index 0000000..4c07f36
Binary files /dev/null and b/Animations/jumptosideclimb_nohat.xnb differ
diff --git a/Animations/ledgegrabback.xnb b/Animations/ledgegrabback.xnb
new file mode 100644
index 0000000..cbc20fc
Binary files /dev/null and b/Animations/ledgegrabback.xnb differ
diff --git a/Animations/ledgegrabback_nohat.xnb b/Animations/ledgegrabback_nohat.xnb
new file mode 100644
index 0000000..94e89ab
Binary files /dev/null and b/Animations/ledgegrabback_nohat.xnb differ
diff --git a/Animations/ledgegrabfront.xnb b/Animations/ledgegrabfront.xnb
new file mode 100644
index 0000000..9a8fd91
Binary files /dev/null and b/Animations/ledgegrabfront.xnb differ
diff --git a/Animations/ledgegrabfront_nohat.xnb b/Animations/ledgegrabfront_nohat.xnb
new file mode 100644
index 0000000..8576df2
Binary files /dev/null and b/Animations/ledgegrabfront_nohat.xnb differ
diff --git a/Animations/ledgepullupback.xnb b/Animations/ledgepullupback.xnb
new file mode 100644
index 0000000..5bde609
Binary files /dev/null and b/Animations/ledgepullupback.xnb differ
diff --git a/Animations/ledgepullupback_nohat.xnb b/Animations/ledgepullupback_nohat.xnb
new file mode 100644
index 0000000..940b521
Binary files /dev/null and b/Animations/ledgepullupback_nohat.xnb differ
diff --git a/Animations/ledgepullupfront.xnb b/Animations/ledgepullupfront.xnb
new file mode 100644
index 0000000..3fd60d9
Binary files /dev/null and b/Animations/ledgepullupfront.xnb differ
diff --git a/Animations/ledgepullupfront_nohat.xnb b/Animations/ledgepullupfront_nohat.xnb
new file mode 100644
index 0000000..3f1daf4
Binary files /dev/null and b/Animations/ledgepullupfront_nohat.xnb differ
diff --git a/Animations/ledgeshimmyback.xnb b/Animations/ledgeshimmyback.xnb
new file mode 100644
index 0000000..4cac2ec
Binary files /dev/null and b/Animations/ledgeshimmyback.xnb differ
diff --git a/Animations/ledgeshimmyback_nohat.xnb b/Animations/ledgeshimmyback_nohat.xnb
new file mode 100644
index 0000000..e46e574
Binary files /dev/null and b/Animations/ledgeshimmyback_nohat.xnb differ
diff --git a/Animations/ledgeshimmyfront.xnb b/Animations/ledgeshimmyfront.xnb
new file mode 100644
index 0000000..255c39f
Binary files /dev/null and b/Animations/ledgeshimmyfront.xnb differ
diff --git a/Animations/ledgeshimmyfront_nohat.xnb b/Animations/ledgeshimmyfront_nohat.xnb
new file mode 100644
index 0000000..fdfdaa8
Binary files /dev/null and b/Animations/ledgeshimmyfront_nohat.xnb differ
diff --git a/Animations/letgotombstone.xnb b/Animations/letgotombstone.xnb
new file mode 100644
index 0000000..c535221
Binary files /dev/null and b/Animations/letgotombstone.xnb differ
diff --git a/Animations/letgotombstone_nohat.xnb b/Animations/letgotombstone_nohat.xnb
new file mode 100644
index 0000000..bc4d703
Binary files /dev/null and b/Animations/letgotombstone_nohat.xnb differ
diff --git a/Animations/lift.xnb b/Animations/lift.xnb
new file mode 100644
index 0000000..6d64e24
Binary files /dev/null and b/Animations/lift.xnb differ
diff --git a/Animations/lift_nohat.xnb b/Animations/lift_nohat.xnb
new file mode 100644
index 0000000..6398fc6
Binary files /dev/null and b/Animations/lift_nohat.xnb differ
diff --git a/Animations/liftheavy.xnb b/Animations/liftheavy.xnb
new file mode 100644
index 0000000..951bc36
Binary files /dev/null and b/Animations/liftheavy.xnb differ
diff --git a/Animations/liftheavy_nohat.xnb b/Animations/liftheavy_nohat.xnb
new file mode 100644
index 0000000..2b2587e
Binary files /dev/null and b/Animations/liftheavy_nohat.xnb differ
diff --git a/Animations/lookdown.xnb b/Animations/lookdown.xnb
new file mode 100644
index 0000000..a0753f6
Binary files /dev/null and b/Animations/lookdown.xnb differ
diff --git a/Animations/lookdown_nohat.xnb b/Animations/lookdown_nohat.xnb
new file mode 100644
index 0000000..2050e41
Binary files /dev/null and b/Animations/lookdown_nohat.xnb differ
diff --git a/Animations/lookleft.xnb b/Animations/lookleft.xnb
new file mode 100644
index 0000000..f346e4d
Binary files /dev/null and b/Animations/lookleft.xnb differ
diff --git a/Animations/lookleft_nohat.xnb b/Animations/lookleft_nohat.xnb
new file mode 100644
index 0000000..4f0ff92
Binary files /dev/null and b/Animations/lookleft_nohat.xnb differ
diff --git a/Animations/lookright.xnb b/Animations/lookright.xnb
new file mode 100644
index 0000000..8d08740
Binary files /dev/null and b/Animations/lookright.xnb differ
diff --git a/Animations/lookright_nohat.xnb b/Animations/lookright_nohat.xnb
new file mode 100644
index 0000000..3f33c7e
Binary files /dev/null and b/Animations/lookright_nohat.xnb differ
diff --git a/Animations/lookup.xnb b/Animations/lookup.xnb
new file mode 100644
index 0000000..d885658
Binary files /dev/null and b/Animations/lookup.xnb differ
diff --git a/Animations/lookup_nohat.xnb b/Animations/lookup_nohat.xnb
new file mode 100644
index 0000000..156d84a
Binary files /dev/null and b/Animations/lookup_nohat.xnb differ
diff --git a/Animations/lowertoledge.xnb b/Animations/lowertoledge.xnb
new file mode 100644
index 0000000..057cd9b
Binary files /dev/null and b/Animations/lowertoledge.xnb differ
diff --git a/Animations/lowertoledge_nohat.xnb b/Animations/lowertoledge_nohat.xnb
new file mode 100644
index 0000000..da1c8ba
Binary files /dev/null and b/Animations/lowertoledge_nohat.xnb differ
diff --git a/Animations/opentreasure.xnb b/Animations/opentreasure.xnb
new file mode 100644
index 0000000..c1c76a1
Binary files /dev/null and b/Animations/opentreasure.xnb differ
diff --git a/Animations/opentreasure_nohat.xnb b/Animations/opentreasure_nohat.xnb
new file mode 100644
index 0000000..73d6baf
Binary files /dev/null and b/Animations/opentreasure_nohat.xnb differ
diff --git a/Animations/pivottombstone.xnb b/Animations/pivottombstone.xnb
new file mode 100644
index 0000000..a97e902
Binary files /dev/null and b/Animations/pivottombstone.xnb differ
diff --git a/Animations/pivottombstone_nohat.xnb b/Animations/pivottombstone_nohat.xnb
new file mode 100644
index 0000000..b93b10b
Binary files /dev/null and b/Animations/pivottombstone_nohat.xnb differ
diff --git a/Animations/push.xnb b/Animations/push.xnb
new file mode 100644
index 0000000..d7ed070
Binary files /dev/null and b/Animations/push.xnb differ
diff --git a/Animations/push_nohat.xnb b/Animations/push_nohat.xnb
new file mode 100644
index 0000000..719fb21
Binary files /dev/null and b/Animations/push_nohat.xnb differ
diff --git a/Animations/pushspinfall.xnb b/Animations/pushspinfall.xnb
new file mode 100644
index 0000000..ef22fa7
Binary files /dev/null and b/Animations/pushspinfall.xnb differ
diff --git a/Animations/pushspinfall_nohat.xnb b/Animations/pushspinfall_nohat.xnb
new file mode 100644
index 0000000..e5d3dcb
Binary files /dev/null and b/Animations/pushspinfall_nohat.xnb differ
diff --git a/Animations/run.xnb b/Animations/run.xnb
new file mode 100644
index 0000000..7e0e86c
Binary files /dev/null and b/Animations/run.xnb differ
diff --git a/Animations/run_nohat.xnb b/Animations/run_nohat.xnb
new file mode 100644
index 0000000..28289ec
Binary files /dev/null and b/Animations/run_nohat.xnb differ
diff --git a/Animations/runswitch.xnb b/Animations/runswitch.xnb
new file mode 100644
index 0000000..0d5259f
Binary files /dev/null and b/Animations/runswitch.xnb differ
diff --git a/Animations/runswitch_nohat.xnb b/Animations/runswitch_nohat.xnb
new file mode 100644
index 0000000..d63c2cd
Binary files /dev/null and b/Animations/runswitch_nohat.xnb differ
diff --git a/Animations/suckedin.xnb b/Animations/suckedin.xnb
new file mode 100644
index 0000000..de759ef
Binary files /dev/null and b/Animations/suckedin.xnb differ
diff --git a/Animations/suckedin_nohat.xnb b/Animations/suckedin_nohat.xnb
new file mode 100644
index 0000000..37a6b20
Binary files /dev/null and b/Animations/suckedin_nohat.xnb differ
diff --git a/Animations/swim.xnb b/Animations/swim.xnb
new file mode 100644
index 0000000..76be018
Binary files /dev/null and b/Animations/swim.xnb differ
diff --git a/Animations/swim_nohat.xnb b/Animations/swim_nohat.xnb
new file mode 100644
index 0000000..3a8094e
Binary files /dev/null and b/Animations/swim_nohat.xnb differ
diff --git a/Animations/teeter.xnb b/Animations/teeter.xnb
new file mode 100644
index 0000000..bb02c48
Binary files /dev/null and b/Animations/teeter.xnb differ
diff --git a/Animations/teeter_nohat.xnb b/Animations/teeter_nohat.xnb
new file mode 100644
index 0000000..c277fbf
Binary files /dev/null and b/Animations/teeter_nohat.xnb differ
diff --git a/Animations/teeterpaul.xnb b/Animations/teeterpaul.xnb
new file mode 100644
index 0000000..7183d1f
Binary files /dev/null and b/Animations/teeterpaul.xnb differ
diff --git a/Animations/teeterpaul_nohat.xnb b/Animations/teeterpaul_nohat.xnb
new file mode 100644
index 0000000..dc0c845
Binary files /dev/null and b/Animations/teeterpaul_nohat.xnb differ
diff --git a/Animations/throw.xnb b/Animations/throw.xnb
new file mode 100644
index 0000000..1b09114
Binary files /dev/null and b/Animations/throw.xnb differ
diff --git a/Animations/throw_nohat.xnb b/Animations/throw_nohat.xnb
new file mode 100644
index 0000000..f487e2c
Binary files /dev/null and b/Animations/throw_nohat.xnb differ
diff --git a/Animations/throwheavy.xnb b/Animations/throwheavy.xnb
new file mode 100644
index 0000000..75e1a9e
Binary files /dev/null and b/Animations/throwheavy.xnb differ
diff --git a/Animations/throwheavy_nohat.xnb b/Animations/throwheavy_nohat.xnb
new file mode 100644
index 0000000..13b5b59
Binary files /dev/null and b/Animations/throwheavy_nohat.xnb differ
diff --git a/Animations/tread.xnb b/Animations/tread.xnb
new file mode 100644
index 0000000..e4591dd
Binary files /dev/null and b/Animations/tread.xnb differ
diff --git a/Animations/tread_nohat.xnb b/Animations/tread_nohat.xnb
new file mode 100644
index 0000000..6439305
Binary files /dev/null and b/Animations/tread_nohat.xnb differ
diff --git a/Animations/unlockdoor.xnb b/Animations/unlockdoor.xnb
new file mode 100644
index 0000000..626c00c
Binary files /dev/null and b/Animations/unlockdoor.xnb differ
diff --git a/Animations/unlockdoor_nohat.xnb b/Animations/unlockdoor_nohat.xnb
new file mode 100644
index 0000000..19e2175
Binary files /dev/null and b/Animations/unlockdoor_nohat.xnb differ
diff --git a/Animations/victory.xnb b/Animations/victory.xnb
new file mode 100644
index 0000000..f154ebf
Binary files /dev/null and b/Animations/victory.xnb differ
diff --git a/Animations/victory_nohat.xnb b/Animations/victory_nohat.xnb
new file mode 100644
index 0000000..6494620
Binary files /dev/null and b/Animations/victory_nohat.xnb differ
diff --git a/Animations/wakeup.xnb b/Animations/wakeup.xnb
new file mode 100644
index 0000000..8dc2c3b
Binary files /dev/null and b/Animations/wakeup.xnb differ
diff --git a/Animations/wakeup_nohat.xnb b/Animations/wakeup_nohat.xnb
new file mode 100644
index 0000000..c90150b
Binary files /dev/null and b/Animations/wakeup_nohat.xnb differ
diff --git a/Animations/walk.xnb b/Animations/walk.xnb
new file mode 100644
index 0000000..9f9c3b2
Binary files /dev/null and b/Animations/walk.xnb differ
diff --git a/Animations/walk_nohat.xnb b/Animations/walk_nohat.xnb
new file mode 100644
index 0000000..1c0d754
Binary files /dev/null and b/Animations/walk_nohat.xnb differ
diff --git a/Animations/warp.xnb b/Animations/warp.xnb
new file mode 100644
index 0000000..1921da7
Binary files /dev/null and b/Animations/warp.xnb differ
diff --git a/Animations/warp_nohat.xnb b/Animations/warp_nohat.xnb
new file mode 100644
index 0000000..d3e734f
Binary files /dev/null and b/Animations/warp_nohat.xnb differ
diff --git a/Dependencies/README.md b/Dependencies/README.md
new file mode 100644
index 0000000..2b4535b
--- /dev/null
+++ b/Dependencies/README.md
@@ -0,0 +1,13 @@
+# Dependencies
+
+Please use your own copies of FEZ's binaries. This directory should contain the following:
+
+- Common.dll
+- ContentSerialization.dll
+- EasyStorage.dll
+- FEZ.exe
+- FezEngine.dll
+- FNA.dll
+- XnaWordWrapCore.dll
+- MonoMod.exe
+- MonoMod.Utils.dll
diff --git a/FEZ.Sonez.mm.csproj b/FEZ.Sonez.mm.csproj
new file mode 100644
index 0000000..5fa73fd
--- /dev/null
+++ b/FEZ.Sonez.mm.csproj
@@ -0,0 +1,250 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {8890A881-E469-42F3-8BF7-0A71E68A5522}
+ Library
+ Properties
+ Sonez
+ FEZ.Sonez.mm
+ v4.8
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ Dependencies\Common.dll
+ False
+
+
+ Dependencies\ContentSerialization.dll
+
+
+ Dependencies\EasyStorage.dll
+ False
+
+
+ Dependencies\FEZ.exe
+ False
+
+
+ Dependencies\FezEngine.dll
+ False
+
+
+ Dependencies\FNA.dll
+ False
+
+
+ Dependencies\MonoMod.exe
+ False
+
+
+ Dependencies\MonoMod.Utils.dll
+ False
+
+
+
+
+
+
+
+
+
+
+ Dependencies\XnaWordWrapCore.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..47688b3
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Krzyhau
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..c53b79b
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Ogólne informacje o zestawie są kontrolowane poprzez następujący
+// zestaw atrybutów. Zmień wartości tych atrybutów, aby zmodyfikować informacje
+// powiązane z zestawem.
+[assembly: AssemblyTitle("Sonez")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Sonez")]
+[assembly: AssemblyCopyright("Copyright © 2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Ustawienie elementu ComVisible na wartość false sprawia, że typy w tym zestawie są niewidoczne
+// dla składników COM. Jeśli potrzebny jest dostęp do typu w tym zestawie z
+// COM, ustaw wartość true dla atrybutu ComVisible tego typu.
+[assembly: ComVisible(false)]
+
+// Następujący identyfikator GUID jest identyfikatorem biblioteki typów w przypadku udostępnienia tego projektu w modelu COM
+[assembly: Guid("8890a881-e469-42f3-8bf7-0a71e68a5522")]
+
+// Informacje o wersji zestawu zawierają następujące cztery wartości:
+//
+// Wersja główna
+// Wersja pomocnicza
+// Numer kompilacji
+// Poprawka
+//
+// Możesz określić wszystkie wartości lub użyć domyślnych numerów kompilacji i poprawki
+// przy użyciu symbolu „*”, tak jak pokazano poniżej:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Properties/thumbnail.png b/Properties/thumbnail.png
new file mode 100644
index 0000000..c8f1e7f
Binary files /dev/null and b/Properties/thumbnail.png differ
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4c1b181
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# FezSonezSkin
+
+![thumbnail](/Properties/thumbnail.png)
+
+This library is a [MonoMod](https://github.com/MonoMod/MonoMod) mod which replaces Gomez with Sonez - a merge of Gomez and Sonic, which can be seen in Speedrun Mode thumbnail.
+
+## Installation
+
+1. Download [MonoMod](https://github.com/MonoMod/MonoMod) (for .NET 4.5.2) and unpack it in the game's directory.
+2. Download FEZ.Sonez.mm.dll and put it in the game's directory.
+3. Run command `MonoMod.exe FEZ.exe` (or drag `FEZ.exe` onto `MonoMod.exe`). This should generate new executable file called `MONOMODDED_FEZ.exe`.
+4. Run `MONOMODDED_FEZ.exe` and enjoy your skin!
+
+## Building
+
+1. Clone repository.
+2. Copy all dependencies listed in `Dependencies` directory and paste them into said directory.
+3. Build it. idk. it should work.
diff --git a/Sonez.sln b/Sonez.sln
new file mode 100644
index 0000000..3264f9c
--- /dev/null
+++ b/Sonez.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32407.343
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FEZ.Sonez.mm", "FEZ.Sonez.mm.csproj", "{8890A881-E469-42F3-8BF7-0A71E68A5522}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8890A881-E469-42F3-8BF7-0A71E68A5522}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8890A881-E469-42F3-8BF7-0A71E68A5522}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8890A881-E469-42F3-8BF7-0A71E68A5522}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8890A881-E469-42F3-8BF7-0A71E68A5522}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {34F91619-BD31-4924-8B4E-5D3DC91DF859}
+ EndGlobalSection
+EndGlobal
diff --git a/SonezAnimationLoader.cs b/SonezAnimationLoader.cs
new file mode 100644
index 0000000..5ce0d50
--- /dev/null
+++ b/SonezAnimationLoader.cs
@@ -0,0 +1,42 @@
+using Common;
+using FezEngine.Tools;
+using System.Collections.Generic;
+using System.IO;
+using System.Reflection;
+
+namespace Sonez
+{
+ static class SonezAnimationLoader
+ {
+
+ public static void Load()
+ {
+ var cachedAssets = typeof(MemoryContentManager).GetField("cachedAssets", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null) as Dictionary;
+
+ if (cachedAssets == null) return;
+
+ const string assemblyName = "Sonez.Animations.";
+ var assembly = Assembly.GetAssembly(typeof(SonezAnimationLoader));
+
+ foreach (var resourceName in assembly.GetManifestResourceNames())
+ {
+ if (!resourceName.StartsWith(assemblyName)) continue;
+
+ var assetName = "character animations\\gomez\\"
+ + resourceName.Substring(assemblyName.Length).Replace(".xnb", "").Replace('.', '\\');
+
+
+ Stream resourceStream = assembly.GetManifestResourceStream(resourceName);
+
+ if (resourceStream == null) continue;
+
+ byte[] resourceData = new byte[resourceStream.Length];
+ resourceStream.Read(resourceData, 0, resourceData.Length);
+
+ cachedAssets[assetName] = resourceData;
+ }
+
+ Logger.Log("Sonez", "Successfully injected Sonez assets.");
+ }
+ }
+}
diff --git a/patch_GomezHost.cs b/patch_GomezHost.cs
new file mode 100644
index 0000000..65f171f
--- /dev/null
+++ b/patch_GomezHost.cs
@@ -0,0 +1,38 @@
+
+using Common;
+using FezEngine.Effects;
+using FezEngine.Effects.Structures;
+using Microsoft.Xna.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FezGame.Components
+{
+ public class patch_GomezHost : GomezHost
+ {
+ public patch_GomezHost(Game game) : base(game) { }
+
+ public extern void orig_Update(GameTime gameTime);
+ public override void Update(GameTime gameTime)
+ {
+ orig_Update(gameTime);
+
+ var f = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;
+
+ GomezEffect effect = this.GetType().GetField("effect", f).GetValue(this) as GomezEffect;
+
+ //Logger.Log("Test", (effect != null) ? "true" : "false");
+
+ if (effect == null) return;
+
+ if (effect.ColorSwapMode != ColorSwapMode.Cmyk) return;
+
+ SemanticMappedVector3 blackSwap = effect.GetType().GetField("blackSwap", f).GetValue(effect) as SemanticMappedVector3;
+ blackSwap.Set(new Vector3(0f, 0f, 1.0f));
+ }
+ }
+}
diff --git a/patch_PlayerManager.cs b/patch_PlayerManager.cs
new file mode 100644
index 0000000..69d8141
--- /dev/null
+++ b/patch_PlayerManager.cs
@@ -0,0 +1,16 @@
+using Sonez;
+
+namespace FezGame.Services
+{
+ public class patch_PlayerManager : PlayerManager
+ {
+
+ public extern void orig_FillAnimations();
+ public void FillAnimations()
+ {
+ SonezAnimationLoader.Load();
+
+ orig_FillAnimations();
+ }
+ }
+}