tbb.blayms.mea
1.4.0
See the version list below for details.
dotnet add package tbb.blayms.mea --version 1.4.0
NuGet\Install-Package tbb.blayms.mea -Version 1.4.0
<PackageReference Include="tbb.blayms.mea" Version="1.4.0" />
<PackageVersion Include="tbb.blayms.mea" Version="1.4.0" />
<PackageReference Include="tbb.blayms.mea" />
paket add tbb.blayms.mea --version 1.4.0
#r "nuget: tbb.blayms.mea, 1.4.0"
#:package tbb.blayms.mea@1.4.0
#addin nuget:?package=tbb.blayms.mea&version=1.4.0
#tool nuget:?package=tbb.blayms.mea&version=1.4.0
ModExtraAssets
A tool made specificly to make a proccess of loading custom assets way easier Highly recommended to be used for Unity Engine BepInEx plugins
- Supports *.zip files (Stable)
- Supports *.vfp files (Recently released and highly untested, but proven to be mainly working)
Documentation
This tool has a documentation outside GitHub, check it here
Supported file types
ModExtraAssets can recognize some file extension to create a specific asset of type
Extension | Zip Condition | Vfp Condition | Return type |
---|---|---|---|
*.png | None | None | UnityEngine.Texture2D |
*.png | File name must contain !number at the end to define Sprite.pixelsPerUnit Value | File must contains a metadata pair (Key: meaTexType, Value: sprite!{number to define Sprite.pixelsPerUnit Value}). | UnityEngine.Sprite |
*.png | File name must contain !c at the end to differentiate it from other *.png files | File must contains a metadata pair (Key: meaTexType, Value: cubemap) | UnityEngine.Cubemap |
*.png | File name must contain !sheet at the end to differentiate it from other *.png files and also requires a json file | File must contains a metadata pair (Key: meaTexType, Value: sheet). Could use a separate json file or another metadata pair. Please visit docs (step 5) for more information | Blayms.MEA.SpriteSheetMEA |
*.wav | None | None | UnityEngine.AudioClip |
*.obj | None | None | UnityEngine.Mesh |
*.json | Referencing DLLs | Referencing DLLs | Any deserializable |
*.txt or *.text | None | None | System.String |
*.dll | *.zip configuration | *.vfp configuration | System.Reflection.Assembly |
Couple of code snippets
Example: Loading database with using a zip file Newtonsoft.Json library
MEAZipLoadingProcedure proc = Blayms.MEA.ModExtraAssets.CreateLoadingProcedure<MEAZipLoadingProcedure>(@"D:\mycoolpluginfolder\myCoolZip.zip", this,
(string json, Type type, object[] extraData) =>
{
return JsonConvert.DeserializeObject(json, type, (JsonSerializerSettings)extraData[0]);
}, new object[]{MyCoolClass.GetJsonSerializerSettingsFor<LocalizationData>()});
proc.Initiate();
Example: Do stuff after all asset are finished to load from *.zip
// CREATE THE PROCEDURE
MEAZipLoadingProcedure meaZipLoadingProcedure = ModExtraAssets.CreateLoadingProcedure<MEAZipLoadingProcedure>
(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"zip.zip"), BasePlugin.Instance, (string json, Type type, object[] extraData)
=> JsonConvert.DeserializeObject(json, type, Class.MyJsonSerializerSettings(type)), null);
meaZipLoadingProcedure.onLoadingResultDefined +=
delegate (MEAZipLoadingProcedure.LoadingResult loadingResult) // SUB TO EVENT
{
if(loadingResult == MEAZipLoadingProcedure.LoadingResult.Success)
{
//CODE
}
};
meaZipLoadingProcedure.Initiate(); // START LOADING ASSETS
Credits
This tool was made by Blayms and uses some utils found online, such as:
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Threading.Tasks.Extensions (>= 4.5.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
1.3:
- ModExtraAssets is capable of loading sprite sheets (more on that on docs page)
- Changed pixelsPerUnit from int to float everywhere
1.4:
- Changed API slightly (Removed LoadAllZipAssets function, insured a support for different file types by adding MEALoadingProcedureBase class)
- Added procedure support for Versatile File Packages (My own archive-like file format that uses LZMA compression). The VFP Editor is not yet public and I don't think it will be public any time soon, but I'm definetely planning to do that! Read some information about that file type here on docs: https://sites.google.com/view/mea-docs/main/useful-information/vfp-info