Hi Veden, so I finally released that mod I was mentioning: Restrictions on Artificial Tiles
It's not able to pick up some of your new biter nests and worms, though, and even if it could, I'm not sure if you'd want my default values assigned to them or not.
In a nut shell, the concept of my mod is to make it so some tiles, which I refer to as "artificial" tiles (like concrete), cannot be placed where some entities are (like trees, cliffs, biter nests/worms) and vice versa, with some exceptions. In the case of biter nests/worms, when spawned on artificial tiles, they have a chance at "failing".
I have a couple of functions you can call from your mod in the data stage to register your biter nests and worms with mine:
RestrictionsOnArtificialTiles.Register_worm(worm, fail_factor)
RestrictionsOnArtificialTiles.Register_spawner(spawner, fail_factor)
fail_factor
is a number of type double
and is a coefficient used in combination with the average walking_speed_modifier
of any tiles the biter nest/worm is on to determine the chance at failing: (avg - 1) + ((avg - 1) * fail_factor)
Allowed values are from -1
(least chance at failing across all tiles) to an unrestricted positive number (10
guarantees spawn failure with an average walking_speed_modifier
of a little under 1.1 or greater).
You can pick which ever values you think are most appropriate for your biter nests/worms. For reference, these are the values I'm assigning to vanilla:
small worms: fail_factor
of 1
medium worms: fail_factor
of 2/3
big worms: fail_factor
of 1/3
behemoth worms: fail_factor
of 0
nests: fail_factor
of 0.5
Anyway, I'm going to stop writing here. I hope what I've written makes sense and isn't confusing. :/ I've put more details on the mod portal page for my mod if interested, including a table at the bottom for various fail_factor
and average walking_speed_modifier
values. Assuming, of course, that it doesn't make things more confusing. XD