Description
I notice cleaning tasks can have a disproportionate effect on performance. Have you considered abstracting it such that (indoor) rooms are treated as 1 "unit to be cleaned" rather than the pawn job searcher having to search over every mess instance in every room, you could just have an average mess rating per area and when a pawn works on a particular area they would just sweep random adjacent tiles in sequence in the respective room and each time sufficient work is completed you would remove 1 mess object at random.
Assuming I've explained it in a coherent way (and that the existing code works approximately the way I assume it does), I expect this would drastically reduce the performance cost while retaining the effective functionality (you would still have the same 'messes' visually, the only abstraction is in how they are cleaned.)
So my questions:
- Is this approach likely to have significant benefits vs current code?
- Is this approach something you think would fit with this mod?
- Is it feasible enough that you are willing to consider doing it?
If 1 is yes but 2 and/or 3 are no, would you be willing to give me pointers as to what I'd need to override to make my own mod and implement it myself? I'm a software dev who specializes in C# and I've done unity game modding in the past, just not for Rimworld.
Thanks, ~ David