[0.17.52] Bots placing upgrades can ignore entity collision settings.
Posted: Sun Jun 30, 2019 12:13 am
Bots can place an entity in a way that ignores the entity collision settings if it is done as part of an 'upgrade'.
Simplified example situation: Floating wooden belt
Alternate version of transport belt (floating wooden belt) can be placed on land and water (based on the collision mask).
It is part of the same fast-replace group as normal transport belt.
A line of floating belt is placed going from land to water, extending into the water.
In the upgrade planner you can upgrade from transport-belt to floating-transport-belt.
You upgrade from floating belt to normal belt, all belts are marked with upgrade icons.
If you try to upgrade manually you can replace the belt on land but not on water because normal belt cannot be placed on water.
When bots do the upgrades they can put normal belt on water.
The expected behaviour is that:
A) The bots would not be able to place the normal belt on water even if it is marked for upgrade.
b) When the upgrade markers were placed on the floating belts, if the upgrade is invalid then the upgrade is cancelled.
The real example was with the Space Exploration mod. The belts with alternate collision are belts that can be placed in space where as normal belts can only go on the ground. I've had switch space belts to a different fast replace group so people can't abuse the exploit. The same issue affects pipes, rail, assembling machines etc. The biggest effect of the problem is when people try to swap entities for space versions inside a blueprint so it can be used in space.
Simplified example situation: Floating wooden belt
Alternate version of transport belt (floating wooden belt) can be placed on land and water (based on the collision mask).
It is part of the same fast-replace group as normal transport belt.
A line of floating belt is placed going from land to water, extending into the water.
In the upgrade planner you can upgrade from transport-belt to floating-transport-belt.
You upgrade from floating belt to normal belt, all belts are marked with upgrade icons.
If you try to upgrade manually you can replace the belt on land but not on water because normal belt cannot be placed on water.
When bots do the upgrades they can put normal belt on water.
The expected behaviour is that:
A) The bots would not be able to place the normal belt on water even if it is marked for upgrade.
b) When the upgrade markers were placed on the floating belts, if the upgrade is invalid then the upgrade is cancelled.
The real example was with the Space Exploration mod. The belts with alternate collision are belts that can be placed in space where as normal belts can only go on the ground. I've had switch space belts to a different fast replace group so people can't abuse the exploit. The same issue affects pipes, rail, assembling machines etc. The biggest effect of the problem is when people try to swap entities for space versions inside a blueprint so it can be used in space.