neitsa/PrepareLanding

Feature Request/Enhancement Wishlist

Saari-Dev opened this issue · 1 comments

First of all, thank you for creating this mod for Rimworld! It's been an absolute game-changer due to the level of QoL improvement it brings. That said, I have a small wishlist of enhancements/feature requests that I'd like to bring up, as well as the reasoning behind each change. Sorry in advance for the wall of text!


More Customizable Stone Type Range (Enhancement)
I've been using the configurable maps mod for a while, which allows you to alter the minimum/maximum amount of stone types that can spawn on each map. Unfortunately, your mod limits the input to 2-3, while the configurable maps mod can go down to one or up to all types. I recognize that technically this conflict can be circumvented by using the type filter instead of the number filter, but it's just something you may want to consider for users with heavier mod lists.


Hemisphere Selection (Feature Request)
This might just be me, but as someone who lives in the northern hemisphere in real life, I always find it less attractive to spend the extra tiny bit of time adjusting to the inverted seasons of the southern hemisphere. I noticed you have the time zone selector (which I'm assuming is coordinate based), would it be possible to extend the functionality of this to create a hemisphere selector?


Modded Special Features (Feature Request)
I'm not sure how difficult or even possible this would be (without mod authors creating compatibility themselves), but some mods, such as the coastlines mod, add new special features to the game. Would it be possible to extend the special features filter to include ones introduced by mods?


Civilization Proximity Filter (Feature Request)
Let me preface this feature request by saying that this would be a larger and more complex feature, and could possibly require its own tab should you choose to include it (if there aren't any technical limitations to prevent creating it in the first place!). Currently you have the ability to filter by world feature, which made me think -- what about proximity to factions? Some filters that could fall under this feature are as follows:

  • Filter by amount of friendly/neutral/hostile/total factions within X tiles
  • Filter by minimum/maximum distance from another faction (to prevent relationship degredation for being too close, or for a more isolationist colony)
  • Filter to require a specific faction (or factions) to be settled within X tiles of the location. This can also be inverted to look for places without a specific faction (or factions) within X tiles of the location.

The only downside to this that I can immediately think of is the increase in required processing, leading to potentially longer load times. If the processing time is too large, it could be implemented with a warning similar to what Tynan did with world and map sizes, indicating that load times could be dramatically increased by using this feature.


That's all that I have for now! Thank you again for creating and maintaining this mod. It's been a pleasure to have the privilege of using it!

First I'd like to apologize; I'm sorry for the time it took me to make an answer. The decency would have required that I acknowledge reception of your message since you took time to articulate what you wanted in a detailed and organized fashion: I like that very much! I read your message and took some time to think about what would be possible with my constrained time, but never posted an answer...

I had some time lately to do some modifications (first I wanted to update for Rimworld v1.2 and then v1.3) and remove all possible source of conflicts. I still have some bugs in the filtering but nothing really worrying although I'd like to squash those bugs first before adding anything new.

Requests

  • More Customizable Stone Type Range

Definitely doable. I would need to spend a bit of time with the mod that you mentioned to see how it exposes the new stone types, but if it is easily accessible from another mods, there's no reason it should be hard to implement in "Prepare Landing".


  • Hemisphere Selection (Feature Request)

I noticed you have the time zone selector (which I'm assuming is coordinate based)

Yep, exactly.

I think it's easy to implement, although it might be heavy on calculation. It's not hard to program (just looking at the latitude of the tile would be enough). That's just another check to add after all. I'm definitely going to check that!


  • Modded Special Features (Feature Request)

Good question, I absolutely don't know how new definition for special features are implemented. Once gain if I access to them easily that should be a no brainer. I was more concerned about the interface which would be used to pick from world features about which the mod know nothing about, but I guess just a list of them would be enough :)


  • Civilization Proximity Filter (Feature Request)

This is something I have wanted to do for a long time, but the sheer computation problem it poses is difficult to work around.

Calculating the distance to other factions from a given tile is easy. Making the same thing for a whole world is just impossible from a naive algorithm point of view (you need to calculate the distances to other factions for each tile in the world).

One possible thing is to put this filter at the end the filtering queue, when other filters has already removed a lot of the unneeded tiles. The only downside is if it's the sole filter to be asked for... Also, IIRC, distance calculation is a PITA from the world interface.

From a less naive point of view I'm pretty sure there are some graph algorithms that could help. I can take a look at that once the easier filters have been implemented. No ETA though.

As you supposed, there is no doubt that it's going to be computationally intensive in all cases.


All in all the first three filters don't seem very difficult to implement if I can have the other mods to cooperate "nicely" (if not that's is going to be difficult). From a technical point of view I seem to recall that this kind of information is provided by mods through "Def" (xml) files, which are then made accessible to all mods from the game engine itself. That should do the trick. I'm going to look at that as soon I have squashed a remaining bug. I'll keep you updated on my progress (and if you're available to test private builds, that would be cool too! )

As for the last request, it seems to be difficult, as you already mentioned. So definitely no ETA on this one. At least I'm going to see when the other requests has been implemented :)

Thanks for your kind feedback!