## Security check
What currently happens is that if `preventOverlap` is not true then
there is no array of point emptied progressively and points are rolled
in a loop of size count for each prop. The problem is that the loop can
be infinite due to `i--; // Try this point again`. A reroll happens when
`height < propInfo.minHeight` or `height > propInfo.maxHeight`, height
being rolled between `heightMap.minHeight` and `heightMap.maxHeight`
(which are not the constraints above).
- This PR checks before the loop if there is less than 0.1% chance for
the upcoming heightMap rolls to be considered correct, and if not it
always skips this check, ignoring `propInfo.minHeight` and `.maxHeight`
to prevent a very long (possibly infinite) loop.
## Major features
- Added `conditionTriggerVolumes` to set a dialogue condition when the
player (or scout or ship) enters an area.
- Added `interactionVolumes` for interactable objects that set a
dialogue condition, play a sound, and/or trigger an animation.
## Minor features
- Added `condition` fields to `dreamCandles` and `projectionTotems` to
set dialogue conditions when they are lit or extinguished.
## Minor features
- Added `raftDocks` to `Props` module. An easier way to spawn in docks
for rafts.
- Added `dockPath` to `RaftInfo`. This is a path to the dock the raft
will start attached to.
- Added `pristine` boolean to `RaftInfo`. Makes the raft use the
dreamworld model.
- Added `speedLimiterVolumes` to `Volumes` module. This is the same
thing the Stranger uses to slow you down.
## Bug fixes
- NH-made rafts no longer skip a node when riding on the Dam's raft
carrier.
## Bug fixes
- Fixed details not having collision if they were immediately
deactivated after being created (for instance, via
`activationCondition`)
- Fixed light sensors disabling themselves on activation if their detail
was immediately deactivated after being created