Overloading Behaviours, A Warning
It’s very tempting to treat the
taskqueuebehaviour as the builder AI, and add functionality to it. This is a trap!
Task queues are intended to be the basic default for construction. If new functionality is needed, a new behaviour should be added. This way it can be applied selectively to builders, and remain modular in an easy to modify and understand way.
Sadly, some Shard implementations throw mountains of new logic into the
taskqueuebehaviour to try and make builders more intelligent, running away, reclaiming buildings etc.. But this makes the code difficult to understand, and harder to extend. On top of that, it consolidates control in a single behaviour, leading to problem when new behaviours are added.