ModAnalyzer - Trivaxy/Libvaxy GitHub Wiki
ModAnalyzer
ModAnalyzer is a class Libvaxy provides as a wrapper around Mod, and it allows you to easily extract any tModLoader-supported content type from any mod in question.
Using ModAnalyzer is very simple. First, create a ModAnalyzer object wrapping around any Mod object of your choice. Let's imagine we want to get every single ModProjectile Thorium has. This is how you would do it:
Mod thorium = ModLoader.GetMod("ThoriumMod");
if (thorium == null)
return; // remember, we cannot analyze a mod that isn't loaded!
ModAnalyzer analyzer = new ModAnalyzer(thorium); // create a ModAnalyzer wrapper around thorium
ModProjectile[] thoriumProjectiles = analyzer.GetResource<ModProjectile>(); // get all thorium ModProjectiles
Done! You used ModAnalyzer to grab all ModProjectiles from thorium. You can grab any tModLoader resource type using GetResource<T>, where T is a resource type.
If, for whatever reason, you need to grab every single resource a mod adds, ModAnalyzer provides a GetAllResources method which returns a Dictionary containing all the resources. The key is the type of the resource and the value is the GetResource<T> equivalent.
For example:
ModAnalyzer analyzer = new ModAnalyzer(someMod);
Dictionary<Type, object> resources = analyzer.GetAllResources();
foreach (ModWall wall in resources[typeof(ModWall)] as ModWall[])
// do stuff with walls!
This is the list of resource types ModAnalyzer allows you to retrieve:
| Resource Types |
|---|
| Texture2D |
| SoundEffect |
| Music |
| DynamicSpriteFont |
| Effect |
| ModItem |
| GlobalItem |
| EquipTexture |
| ModPrefix |
| ModDust |
| ModTile |
| GlobalTile |
| ModTileEntity |
| ModWall |
| GlobalWall |
| ModProjectile |
| GlobalProjectile |
| ModNPC |
| GlobalNPC |
| ModPlayer |
| ModMountData |
| ModBuff |
| GlobalBuff |
| ModWorld |
| ModUgBgStyle |
| ModSurfaceBgStyle |
| GlobalBgStyle |
| ModWaterStyle |
| ModWaterfallStyle |
| ModRecipe |
| GlobalRecipe |
| ModTranslation |
| ModGore |