Attention: This is an ABSOLUTELY new tool for mod development and it is in preview version. There is a possibility that your package files may be corrupted. Use it at your own risk and back up your files!
Hi all! After a few months I am ready to release the first preview version of the package creation and editing software. Even though this is a preview version, you can do a lot: you can view almost all the resources, but you can't edit most of them. The source code for this program is available on GitHub.
Why do we need another editor?
First of all, this program and its module (about this later) is a kind of "improved" s3pe. It still uses the same s3pi library from Peter L Jones, but is modified to support cross-platform. It can also open a file with >100,000 resources in a few seconds, when S3PE opens quite long.
I believe that every editor should edit multiple files, because it can be handy. This program supports this, but with modules it can edit more than just one type of file (e.g. more text files).
That's what I worked on the most. You can create a module once and you can run it on any version of this program in both .NET Framework and .NET 5 (in the future 6). For this I took another library and modified it (I think this feature appeared for the first time in this program, I have not seen several versions of the same program to run the same module). You can play with the modules by simply removing them from the Modules folder and see what happens (spoiler: the program won't crash). Instructions on how to create them can be found here.
Thanks to AvaloniaUI and .NET 5 (in the future 6), the program can run not only on Windows, but also on macOS and Linux (although the game is not officially supported there, as far as I remember). Again, I think this is the first editor in the The Sims franchise that can run on multiple operating systems correctly (usually some did with Mono). For now, I'll only be releasing versions on Windows, since that's where most players play. Who knows, maybe I'll release a preservation cleaner on macOS someday.
How to install?
First of all, you need to have .NET Framework 4.6.1 and a version of Windows 7 or higher. Download the archive and unzip it in a convenient place, run the file Regul.exe and try it!
There is still a lot of work to be done, most of the features are not yet available. I will be glad if you find most of the bugs and let me know.
In the future, I hope that this program will be a single platform for creating mods for all games of The Sims series (thanks to modules). Most likely, I may not put this program in MTS, for the reason that see the previous sentence.
P.s. By the way, when I tested the DDS viewer, I did not expect to be able to view some files that S3PE could not open, example below.
System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Users\Ryzen\Downloads\Sims3\UTILITIES\Regul_0.1.0-alpha_net461\Modules\Onebeld\DDS\SixLabors.ImageSharp.Drawing.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: 'file:///C:\Users\Ryzen\Downloads\Sims3\UTILITIES\Regul_0.1.0-alpha_net461\Modules\Onebeld\DDS\SixLabors.ImageSharp.Drawing.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at Onebeld.Plugins.Loader.ManagedLoadContext.LoadAssemblyFromFilePath(String path)
Rest of the modules seem to throw the same exception