Files
Performance-Fish/DubsAnalyzer.xml
T
bbradson be3dae46bb Added stat caching, fixed all the bugs
Added RitualObligationTriggers analyzer category,
Fixed defs from other mods with broken market value breaking fish's storage patches,
Fixed storage caches not updating for quality, rotting and similar changes to stored things,
Fixed storage caches not updating capacity when reinstalling storage,
Fixed prison labor compatibility,
Improved multiplayer compatibility,
Fixed ideology style dominance and altar sharing patches throwing errors instead of defaulting to disabled when not having ideology,
Fixed compatibility with RIMMSqol's world pawn GC patch by disabling that patch,
Fixed rare threading issues throwing errors on startup
2024-03-10 20:05:24 +01:00

240 lines
7.5 KiB
XML

<Analyzer>
<PerformanceFish>
<!-- Settings, Tick, Update, GUI or Modder. Defaults to Modder -->
<!--Category>Modder</Category-->
<!-- On hover tooltip for the sidebar entry -->
<Tooltip>Methods patched and optimized by Performance Fish. Use this in conjunction with its mod settings to measure performance improvements or find eventual issues if a patch acts up</Tooltip>
<!-- All methods in types -->
<!--Types>
<li></li>
</Types-->
<!-- Specific methods -->
<Methods>
<!-- DesignationManager -->
<li>Verse.DesignationManager:SpawnedDesignationsOfDef</li>
<li>Verse.DesignationManager:AnySpawnedDesignationOfDef</li>
<li>Verse.DesignationManager:AllDesignationsOn</li>
<li>Verse.DesignationManager:DesignationOn</li>
<li>Verse.DesignationManager:HasMapDesignationOn</li>
<!-- Misc -->
<!--li>Verse.GenList:ListFullCopy</li--><!-- generic -->
<li>Verse.ThingFilter:CopyAllowancesFrom</li>
<li>Verse.DrawBatch:Flush</li>
<!-- HediffComp_PsychicHarmonizer -->
<li>RimWorld.HediffComp_PsychicHarmonizer:CompPostTick</li>
<!-- HediffSet -->
<li>Verse.HediffSet:HasHediff</li>
<!-- Lister -->
<li>Verse.Map:MapPreTick</li>
<li>Verse.ListerBuildings:ColonistsHaveBuilding</li>
<li>Verse.ListerBuildings:ColonistsHaveResearchBench</li>
<li>Verse.ListerBuildings:ColonistsHaveBuildingWithPowerOn</li>
<li>Verse.ListerBuildings:AllBuildingsColonistOfDef</li>
<li>Verse.ListerBuildings:AllBuildingsNonColonistOfDef</li>
<!-- StorageSettings -->
<li>RimWorld.StorageSettings:AllowedToAccept</li>
<!-- MassUtility -->
<li>RimWorld.MassUtility:GearMass</li>
<li>RimWorld.MassUtility:InventoryMass</li>
<!-- RecipeDef -->
<li>Verse.RecipeDef:get_AllRecipeUsers</li>
<li>Verse.UnfinishedThing:BillOnTableForMe</li>
<!-- Room -->
<!-- Verse.Room:get_ContainedBeds and Verse.Room:get_Owners are almost exclusively used by Pawn_Ownership.get_OwnedRoom -->
<li>RimWorld.Pawn_Ownership:get_OwnedRoom</li>
<li>Verse.Room:get_Regions</li>
<li>Verse.Room:get_ContainedAndAdjacentThings</li>
<!-- StoreUtility -->
<!-- ThingFilter -->
<li>Verse.ThingFilter:get_AllowedThingDefs</li>
<li>Verse.ThingFilter:get_AllStorableThingDefs</li>
<!-- ThingOwnerUtility -->
<!--li>Verse.ThingOwnerUtility.GetAllThingsRecursively</li--><!-- generic -->
<li>Verse.MapPawns:get_AllPawnsUnspawned</li>
<!-- ThoughtWorker_Precept_AltarSharing -->
<li>RimWorld.ThoughtWorker_Precept_AltarSharing:ShouldHaveThought</li>
<!-- GenClosest -->
<!-- Utility -->
<!-- WorkGiver_DoBill -->
<!--li>RimWorld.WorkGiver_DoBill:TryFindBestIngredientsHelper</li-->
<!--li>RimWorld.WorkGiver_DoBill+&lt;&gt;c__DisplayClass21_0:&lt;TryFindBestIngredientsHelper&gt;b__4</li-->
<!-- WorkGiver_Haul -->
<!--li>RimWorld.WorkGiver_Haul:PotentialWorkThingsGlobal</li-->
<li>PerformanceFish.JobSystem.WorkGiver_HaulOptimization+PotentialWorkThingsGlobal_Patch:Sort</li>
<li>RimWorld.WorkGiver_Haul:JobOnThing</li>
<!-- JobGiver_Haul -->
<li>RimWorld.JobGiver_Haul:TryGiveJob</li>
<!-- IdeoUtility -->
<li>RimWorld.IdeoUtility:GetStyleDominance</li>
<!-- ThingCompPatches -->
<li>RimWorld.CompAssignableToPawn_Bed:IdeoligionForbids</li>
<!-- Reflection -->
<li>System.RuntimeType:GetField</li>
<li>System.Type:GetMethod</li>
<li>System.Type:GetConstructor</li>
<li>System.Type:GetProperty</li>
<li>System.Reflection.MonoField:GetValue</li>
<li>System.Reflection.FieldInfo:SetValue</li>
<li>System.Reflection.MethodBase:Invoke</li>
</Methods>
<!-- Specific methods of all subclasses -->
<!--DerivedMethods>
<li></li>
</DerivedMethods-->
<!-- All methods of subclasses -->
<!--DerivedTypes>
<li></li>
</DerivedTypes-->
<!-- All methods of types nested within specified types -->
<!--NestedTypes>
<li></li>
</NestedTypes-->
</PerformanceFish>
<Abilities>
<Tooltip>Ticking methods of abilities. Cooldown, effects, combat</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>RimWorld.Ability:AbilityTick</li>
<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core">VFECore.Abilities.Ability:Tick</li>
</DerivedMethods>
</Abilities>
<AbilityComps>
<Tooltip>Comps attached to abilities</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>RimWorld.AbilityComp:CompTick</li>
</DerivedMethods>
</AbilityComps>
<Genes>
<Tooltip>Ticking methods of genes. Often empty when not having any ticking genes</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li MayRequire="Ludeon.RimWorld.Biotech">Verse.Gene:Tick</li>
</DerivedMethods>
</Genes>
<HediffComps>
<Tooltip>Comps attached to Hediffs. Often responsible for the actual logic</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>Verse.HediffComp:CompPostTick</li>
</DerivedMethods>
</HediffComps>
<Hediffs>
<Tooltip>Ticking health stuff ond other things implanted in pawn bodies</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>Verse.Hediff:Tick</li>
<li>Verse.Hediff:PostTick</li>
</DerivedMethods>
</Hediffs>
<MentalStates>
<Tooltip>Tick methods of mental states like berserk, tantrum etc</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>Verse.AI.MentalState:MentalStateTick</li>
</DerivedMethods>
</MentalStates>
<Precepts>
<Tooltip>Ticking methods of precepts. Ideology stuff.</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li MayRequire="Ludeon.RimWorld.Ideology">RimWorld.Precept:Tick</li>
</DerivedMethods>
</Precepts>
<RitualObligationTriggers>
<Tooltip>Tick methods ideology ritual triggers. Can scale quite badly when having a lot of precepts loaded</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>RimWorld.RitualObligationTrigger:Tick</li>
</DerivedMethods>
</RitualObligationTriggers>
<ThingCompTick>
<Tooltip>Tick methods of comps attached to Things. Any ThingWithComps can have these, and any mod can add new ones</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>Verse.ThingComp:CompTick</li>
<li>Verse.ThingComp:CompTickRare</li>
<li>Verse.ThingComp:CompTickLong</li>
</DerivedMethods>
</ThingCompTick>
<WorldComponentTick>
<Tooltip>Tick methods of comps with one instance attached to the game world</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>RimWorld.Planet.WorldComponent:WorldComponentTick</li>
</DerivedMethods>
</WorldComponentTick>
<WorldObjectComps>
<Tooltip>Comps attached to settlements, caravans etc</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>RimWorld.Planet.WorldObjectComp:CompTick</li>
</DerivedMethods>
</WorldObjectComps>
<WorldObjects>
<Tooltip>Settlements, caravans etc</Tooltip>
<Category>Tick</Category>
<DerivedMethods>
<li>RimWorld.Planet.WorldObject:Tick</li>
</DerivedMethods>
</WorldObjects>
<ThingCompUpdate>
<Tooltip>Update methods of comps attached to Things. Any ThingWithComps can have these, and any mod can add new ones</Tooltip>
<Category>Update</Category>
<DerivedMethods>
<li>Verse.ThingComp:DrawGUIOverlay</li>
<li>Verse.ThingComp:PostDraw</li>
<li>Verse.ThingComp:PostDrawExtraSelectionOverlays</li>
<li>Verse.ThingComp:PostPrintOnto</li>
</DerivedMethods>
</ThingCompUpdate>
<WorldComponentUpdate>
<Tooltip>Update methods of comps with one instance attached to the game world</Tooltip>
<Category>Update</Category>
<DerivedMethods>
<li>RimWorld.Planet.WorldComponent:WorldComponentUpdate</li>
</DerivedMethods>
</WorldComponentUpdate>
</Analyzer>