JonathanTroyer / Progress-Renderer

A mod for Rimworld. Automatically create scheduled renderings of the full map or only a chosen part of it.
GNU Lesser General Public License v3.0
2 stars 4 forks source link

Add option to the mod menu for compatibillity #29

Closed XenoTheStrange closed 3 months ago

XenoTheStrange commented 4 months ago

Users might want to render maps which aren't technically player homes. I know I do!

I've been using DeepRim for awhile and couldn't get it to work and render images for underground maps, so I looked in the source to find out why. Turns out to be a single if-statement which returns -_-. Now it'll check for a mod config option which allows it to capture images of other maps.

XenoTheStrange commented 4 months ago

I'm thinking of adding an option that will also sort screenshots based on the name (ToString) of the map they're on so things are easier to navigate. Rn it mixes up different maps, giving them the same name but adding "alt-1" as a suffix. Edit: this is due to them sharing the same tile. The mod will capture one, then the other one will have the same name.

XenoTheStrange commented 3 months ago

Hmmmmmm I might just exclude the .csproj file for sake of conflicts. This is the version of progress renderer that's on steam rn, right?

XenoTheStrange commented 3 months ago

Removed .csproj files from the commit

XenoTheStrange commented 3 months ago

I smushed the edits into one little non-conflicting commit. I am not very good at the github.

XenoTheStrange commented 3 months ago

After rendering the mod yanks you to another map sometimes which is super annoying. Might look into that. I think it's a race condition in "DoRendering" in the map component. Each one tries to remember which map was focused and return to it, but I think sometimes it will do that while it's currently rendering and switched to another map, so when it returns it'll go to one of the maps that was being rendered.

Could be fixed with a variable or something idk...? might not be that important. Will see how often it happens. Every time, almost 💀

Maybe I can just make the switchedMap variable global so only one map will be remembered, eliminating the race condition.

XenoTheStrange commented 3 months ago

image image

XenoTheStrange commented 3 months ago

Working on fixing the map switching to a random rendered one after rendering....

XenoTheStrange commented 3 months ago

The problem of it switching to a random map is due to several instances of the DoRender function running at the same time, so while one changes the map to render it the other is saving that map as the one to return to instead of the proper one: image

This image should be a good indicator of what's going on. I'm not sure what a good fix would be without introducing artificial lag by making the functions wait for each-other.

Need a variable with a scope larger than MapComponent for each of the render processes to reference to see who the true parent is... hmmmmmm....

XenoTheStrange commented 3 months ago

This error actually causes problems: because more than one process is changing the map they'll do it at the same time and the process that should capture one map does so with the other instead so it makes duplicate captures of some maps while ignoring others.

Pretty sure this problem applies whenever there are more than 2 maps being captured.

XenoTheStrange commented 3 months ago

.... Merged your bump to 1.5 that happened to occur recently. All done.